使用中有任何问题和建议,请联系罗伯特,微信:13436881186。
笔记本,客户端服务器跑在同一台机器 双核2.4G I3 CPU, 4G内存
设置:
**并发数:**100
测试结果:
测试 | 测试1 | 测试2 | 测试3 | 测试4 | 测试5 | 平均值/最大值 |
---|---|---|---|---|---|---|
QPS | 431000 | 445000 | 442000 | 434000 | 434000 | 437200 |
平均时间(us) | 161 | 160 | 168 | 143 | 157 | 157 |
最大响应时间(ms) | 339 | 304 | 378 | 303 | 299 | 378 |
设置:
**并发数:**100
测试结果:
测试 | 测试1 | 测试2 | 测试3 | 测试4 | 测试5 | 平均值/最大值 |
---|---|---|---|---|---|---|
QPS | 1737 | 1410 | 1474 | 1372 | 1474 | 1493 |
平均时间(us) | 55 | 67 | 66 | 68 | 65 | 64 |
最大响应时间(ms) | 785 | 952 | 532 | 1129 | 1036 | 1129 |
设置:
**并发数:**100 **Boss线程数:**1 **Workder线程数:**4
测试结果:
测试 | 测试1 | 测试2 | 测试3 | 测试4 | 测试5 | 平均值/最大值 |
---|---|---|---|---|---|---|
QPS | 11001 | 10611 | 9788 | 11251 | 10301 | 10590 |
平均时间(ms) | 11 | 11 | 11 | 10 | 10 | 11 |
最大响应时间(ms) | 25 | 21 | 23 | 21 | 21 | 25 |
设置:
**并发数:**100 **Boss线程数:**1 **Workder线程数:**2 **Exececutor线程数:**最小25最大200
测试结果:
测试 | 测试1 | 测试2 | 测试3 | 测试4 | 测试5 | 平均值/最大值 |
---|---|---|---|---|---|---|
QPS | 4994 | 5104 | 5223 | 5108 | 5100 | 5105 |
平均时间(ms) | 20 | 19 | 19 | 19 | 19 | 19 |
最大响应时间(ms) | 75 | 61 | 61 | 61 | 67 | 75 |
- 根据测试,Netty服务可到达11000的QPS,而Tomcat只能答道5000左右的QPS。
- 嵌入发布模式,也就是JVM内部调用最快,没秒可答道40万以上。可见线上服务的瓶颈在网络IO以及网络IO的处理上。
- 使用Dubbo导入导出的中心服务器发布模式的QPS只有不到2000, 这比Tomcat提供的HTTP服务的QPS还要小,这个不符合常理,一方面需要查看是否Dubbo RPC需要优化,包括线程池策略,序列化协议,通信协议等,另外一方面REST使用apache ab测试,嵌入式发布模式使用自己写的客户端测试,是否测试工具存在一定的差异。
- 测试过程中发现loopback虚拟网卡达到30+M的流量,没有到达千兆网卡的极限,双核心CPU占用率已经接近200%,也就是CPU已经到达瓶颈。
参考性能测试总结第三条,中心服务器的性能问题需要在下一个版本跟进和优化。