php7-fpm(docker)

77baf4d644af3cdfdc9cc2e55864be88.png

php-2.png

并发:100 次数:1W

结果:1S  (1.033, 1.060, 1.064)

估算处理数:9500次/秒  (9678, 9430, 9401)

并发数在php中比较难以控制,而且出现了访问错误

前面部分的读取时间很快

后面部分的读取时间很慢

并发2W 次数2W时 需要60秒

并发1W 次数2W时 需要30秒

并发5K 次数2W时 需要30秒

并发:1W 次数:1W

结果:???S  (31.782, 53.001, 16.327)

估算处理数:???次/秒  (629, 377, 1224)

(╯‵□′)╯︵┻━┻

并发385  次数2W时 需要 4秒

并发1000 次数2W时 需要 4.5秒

并发2000 次数2W时 需要 16, 4.3, 7.1, 8.4 秒

(╯‵□′)╯︵┻━┻

并发:385 次数:100W 下的资源占用测试

完成时间:119S

ab: CPU:51% 内存:0.7%

进程占用: nginx:4-8进程 php-fpm: 4-8进程

CPU占用率:  php-fpm:都在大约25%; nginx:和上面测试大约相同; 其他还有其他古怪的线程...

内存占用:0.1% (每进程)

ea758a946966fd939dc1ca69466faaf5.png

奇怪的线程截图

结论

就是它拖了我这么长的时间..大并发时不稳定,资源利用不太好,印象中效率比较差

可能是优化还没到位吧

一开始测试文件也有问题 1W次 要4.5秒....发现是代码加了include其他的初始化文件...

所以其实PHP这样继续写下来,还是有一定的问题的(但是有优化方案)

java 8 + tomcat 9

1a211d2f7a6b31fb9251683b87900aab.png

java-2.png

并发:100 次数:10000

结果:0.5S  (0.974, 0.576, 0.510, 0.404, 0.424, 0.424)

估算处理数:22000次/秒  (10264, 17360, 19591, 24747, 23611, 23577)

最大并发:20000 (ab上限2W)

并发:20000 次数:20000

结果:1S (0.5s/10000次)  (1.698, 1.466, 1.240, 1.060, 0.888, 1.012)

估算处理数:19000次/秒  (11778,  13647, 16134, 18860, 22527, 19754)

并发:20000 次数:100W 下的资源占用测试 (重启容器)

完成时间:46S

ab: CPU:98.6%

进程占用:1进程 多线程

CPU占用率:  220-450% 多数情况在220%左右,偶尔飙升

内存占用:  迅速飙升到 11%,后缓慢上升至15%

结论

越访问越快....但是占用内存比较多,可能是GC还没到位

node.js 5 + express4 +pm2

58f3bff656e01269197d6faf041429c9.png

java-2.png

并发:100 次数:10000

结果:1S  (1.276, 0.932, 0.904, 0.890)

估算处理数:10000次/秒  (7834, 10724, 11059, 11234)

最大并发:20000 (ab上限2W)

并发:20000 次数:20000

结果:1.7S (0.8s/10000次)  (1.910, 1.657, 1.649, 1.755)

估算处理数:11000次/秒  (10469,  12072, 12128, 11398)

并发:20000 次数:100W 下的资源占用测试 (重启容器)

完成时间: 93s

ab: CPU:74%

pm2: CPU:98.7%

进程占用:8进程(手动设置)

CPU占用率:  60%

内存占用:  0.7基本不变

结论

目前是我比较喜欢的语言,运行效率一般,还行,开发效率高一点,没有明显的重大缺陷

后语

这个测试,断断续续做了我2周多...,每次发现都能发现有点不合理的地方,然后重新跑……跑到我都累了,每次跑都有一定的误差

重新编译 ab ,优化 nginx+php配置,等等让我重新跑了N次测试,心都累了

22/2<12

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐