前端机是 1核1G的虚拟机,https压测的时候,CPU占用达80%。 怀疑是不是CPU处理不过来https解密。
修改 /etc/hosts, 把域名指向后端机IP,后端用nignx转发到 tcp业务端口。
ab (2000并发 20000总数,62s完成) -> 后端nginx -> tcp业务
rcentage of the requests served within a certain time (ms)
50% 5626
66% 5721
75% 5752
80% 5769
90% 5921
95% 5942
98% 5972
99% 6009
100% 10042
服务器发出 16492 次 tcp rst。
established 数 2000-4000,持续 60s。然后掉到2000,缓慢掉到1500,然后 0,持续 60s。 timewait 从第二个60s开始, 持续了120s。
CPU 使用率 只有40%。 不是服务器的瓶颈,有可能就是压测机了,压测机也是1核1G的虚拟机。
用 2核4G的虚拟机,+1核1G虚拟机前端+ 后端, 完成时间: 34.7s
50% 3088
66% 3252
75% 3351
80% 3477
90% 4490
95% 4880
98% 5075
99% 5116
100% 5381
2核4G的虚拟机 + 后端机, 完成时间: 17.5
50% 1655
66% 1743
75% 1813
80% 1857
90% 2044
95% 2177
98% 2256
99% 2303
100% 2981
用 wrk -t4 -c2000 -d30s , CPU 打到100%了。
4 threads and 2000 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 175.05ms 192.08ms 1.61s 87.70%
Req/Sec 1.58k 365.25 3.41k 74.29%
178017 requests in 30.06s, 44.02MB read
Requests/sec: 5921.74
用swoole改版的程序,效果挺不错。QPS 提高很多。