全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
楼主: shylocker110

[Windows VPS] 彻底迷惑了。。php-fpm设置越大,负载能力越差。。。

[复制链接]
发表于 2014-12-19 17:47:29 | 显示全部楼层
php-fpm不是进程越多越好,CPU性能差光管理进程本身就是很大开销。
发表于 2014-12-19 17:49:43 | 显示全部楼层
foxconndmd 发表于 2014-12-19 17:47
php-fpm不是进程越多越好,CPU性能差光管理进程本身就是很大开销。

那这个值要怎么定?
发表于 2014-12-19 18:41:03 | 显示全部楼层
php是cpu密集应用,开多个个进程是对付网络密集应用,对cpu密集没用,
提升cpu能力是核心,

点评

E5-2620 4核 vps在提升的话只能杜甫。但杜甫依然无法解决lnmp负载暴高的问题。  发表于 2014-12-20 02:05
发表于 2014-12-19 18:44:12 | 显示全部楼层
同关注这个问题,还有一个问题是,如果访问量一定的情况下,如果你把php-fpm进程设置小了,会不会502?
发表于 2014-12-19 20:33:51 | 显示全部楼层
本帖最后由 SKIDROW 于 2014-12-19 21:08 编辑
醉了 发表于 2014-12-19 17:23
你理解错了。我的意思是php-fpm设置越大,负载能力越差。这句是关键点。


首先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已经是坑了。

点评

为嘛 码字的人不累 看的人喊累  发表于 2014-12-20 02:26
发表于 2014-12-20 02:01:06 | 显示全部楼层
本帖最后由 醉了 于 2014-12-20 02:15 编辑
SKIDROW 发表于 2014-12-19 20:33
首先PHP5.2的php-fpm并不是很完善,只是作为一个补丁启用而已,并且php-fpm与Web Server的进程管理模式不 ...


学习了,你这个是用php原生的php-fpm运行的。军哥的0.9是采用php-cgi运行的。另外我的测试环境是php5.2+eAccelerator测试wordpress。。。。
要是php只能用5.2的话,毕竟国内有好多老程序是5.2的。是不是采用lamp或者lanmp比lnmp更好呢?求大神解惑。。。
发表于 2014-12-20 02:05:55 | 显示全部楼层
1G 内存能受得了 30个 线程? 我 一个项目 32G内存只设置了 25 线程。
发表于 2014-12-20 02:12:09 | 显示全部楼层
zc035 发表于 2014-12-20 02:05
1G 内存能受得了 30个 线程? 我 一个项目 32G内存只设置了 25 线程。

不是说这个进程是根据内存来定的吗?一个进程耗费20M内存。好多运维的博客都这么写的。。。
发表于 2014-12-20 02:24:06 | 显示全部楼层
醉了 发表于 2014-12-20 02:12
不是说这个进程是根据内存来定的吗?一个进程耗费20M内存。好多运维的博客都这么写的。。。 ...

一个进程启动消耗20M内存是不错。但是不是说PHP执行不消耗内存。

1G内存最多只能开 8线程。我看来。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-21 16:10 , Processed in 0.096683 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表