压力测试
测试环境:
- 系统: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运行在同一台机器上
压力测试需要内核调优
参见 附录-内核调优 章节