压力测试

测试环境:

  • 系统: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)压测

  1. 短链接(每次请求完成后关闭链接,下次请求建立新的链接):
  2. 条件: 压测脚本开500个并发线程模拟500个并发用户,每个线程链接Workerman 10W次,每次链接发送1个请求
  3. 结果: 吞吐量:2.3W/S cpu利用率:36%
  4. 长链接(每次请求后不关闭链接,下次请求继续复用这个链接):
  5. 条件: 压测脚本开2000个并发线程模拟2000个并发用户,每个线程链接Workerman 1次,每个链接发送10W请求
  6. 结果: 吞吐量:36.7W/S cpu利用率:69%
  7. 内存:每个进程内存稳定在6444K,无内存泄漏

HHVM环境压测

  1. 短链接(每次请求完成后关闭链接,下次请求建立新的链接):
  2. 条件: 压测脚本开1000个并发线程模拟1000个并发用户,每个线程链接Workerman 10W次,每次链接发送1个请求
  3. 结果: 吞吐量:3.5W/S cpu利用率:35%
  4. 长链接(每次请求后不关闭链接,下次请求继续复用这个链接):
  5. 条件: 压测脚本开6000个并发线程模拟6000个并发用户,每个线程链接Workerman 1次,每个链接发送10W请求
  6. 结果: 吞吐量:45W/S cpu利用率:67%
  7. 内存:HHVM环境每个进程内存稳定在46M,无内存泄漏
以上压测脚本与WorkerMan运行在同一台机器上

压力测试需要内核调优

参见 附录-内核调优 章节