关于一个简单接口的并发测试与优化记录
目的 通过测试了解高并发的各处细节,寻找制约因素;为软硬架构设计提供优化参考。 前述 优化前,该接口在测试环境的qps为140左右 该接口的内部逻辑 处理前1:开始计时 处理前2:较验IP白名单 处理: 查询数据库并缓存 处理后1:结束计划,并提交日志(用于形成性能报告) 日志通过REST API,最终写入数据库 该接口特征: 内部处理简单 可优化点比较清楚 开始测试 使用一个nio或aio的通道框架测试helloworld 使用本机测试,qps约为:450万(我的电脑 macbook pro 4c 16g) 如果server端的服务线程,加个 System.out.println ;qps估计要降一半(亲自跑过) 使用solon.boot.jlhttp,测试helloworld(单机,单实例) 使用本机测试,qps 约为:5万(我的电脑 macbook pro 4c 16g) 使用域局网测试(192.168.8.118),qps给为:2万(2c 4g 虚拟机) 测试getAppByID(服务端为单机单实例;测试端为另一台机,走的是内网) 服务端测试机情况 上面有8个java服务;docker服务(memcached,redis,mysql); 初始测试 qps约为:140 去掉三个触发器 -不用缓存,qps约为:600 +memcached,qps约为:1万(memcached