1.17.2 压力测试

优质
小牛编辑
120浏览
2023-12-01

测试环境:

  • 系统:debian 6.0 64位
  • 内存:64G
  • cpu:Intel(R) Xeon(R) CPU E5-2420 0 @ 1.90GHz (2颗物理cpu,6核心,2线程)
  • Workerman:开启200个Benchark进程
  • 压测脚本:benchmark
  • 业务:发送并返回hello字符串

普通PHP(版本5.3.10)压测

短连接(每次请求完成后关闭连接,下次请求建立新的连接):
    条件: 压测脚本开500个并发线程模拟500个并发用户,每个线程连接Workerman 10W次,每次连接发送1个请求
    结果: 吞吐量:2.3W/S , cpu利用率:36%

长连接(每次请求后不关闭连接,下次请求继续复用这个连接):
    条件: 压测脚本开2000个并发线程模拟2000个并发用户,每个线程连接Workerman 1次,每个连接发送10W请求
    结果: 吞吐量:36.7W/S , cpu利用率:69%

内存:每个进程内存稳定在6444K,无内存泄漏

HHVM环境压测

短连接(每次请求完成后关闭连接,下次请求建立新的连接):
    条件: 压测脚本开1000个并发线程模拟1000个并发用户,每个线程连接Workerman 10W次,每次连接发送1个请求
    结果: 吞吐量:3.5W/S , cpu利用率:35%

长连接(每次请求后不关闭连接,下次请求继续复用这个连接):
    条件: 压测脚本开6000个并发线程模拟6000个并发用户,每个线程连接Workerman 1次,每个连接发送10W请求
    结果: 吞吐量:45W/S , cpu利用率:67%

内存:HHVM环境每个进程内存稳定在46M,无内存泄漏
以上压测脚本与WorkerMan运行在同一台机器上,使用的是较低版本的PHP5.3,如果使用PHP7,则性能会再次提高40%左右。

压力测试需要内核调优

参见 附录-内核调优章节