|
|
发表于 2014-12-19 20:33:51
|
显示全部楼层
本帖最后由 SKIDROW 于 2014-12-19 21:08 编辑
首先PHP5.2的php-fpm并不是很完善,只是作为一个补丁启用而已,并且php-fpm与Web Server的进程管理模式不统一,所以大多数时候仍然是LAMP组合。
并且你这样测试本身就不怎么合理,表面你开了多个php-fpm进程,但是你测试用的是什么页面你也没有说明,是phpinfo,探针,还是Discuz?你也没有说是否开启opcode 缓存如APC、eAccelerator等。
进程越多,管理起来自然就越麻烦,就像现在的Chrome非常占用资源,因为它有很多进程,并且要统一管理,那么就有很多时间浪费在这上面。但是在大多数时候就算一两个Chrome进程崩溃也不会引起整个Chrome崩溃。PHP-FPM开启多个进程是为了能够更好的进行多并发处理,类似于Chrome,就算一个进程出现异常也不会影响其他的进程。你现在只是在20秒内测试600个并发,如果是20秒6000个并发,或者20秒60000个并发,你认为5个进程能否胜任?这就是区别。
你只是认为开得越多负载就越高,那你还是不清楚php-fpm的进程数量的意义。假设你的600个连接平均分到30个进程,挂掉一个,那么你只会收到20个错误,但如果是600个连接分到5个进程,挂掉一个,出问题的连接就大大超过20个。
20141219210509.jpg
(65.01 KB, 下载次数: 0)
我在PHP5.5调了30个php-fpm进程,用了500并发去测试Drupal这种复杂的程序,负载也没上4,要么是CPU问题,反正5.2已经是坑了。 |
|