php-fpm 优化问题
新装的lnmp1.1 里面的 php-fpm.conf文件的内容为:listen = /tmp/php-cgi.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 6
request_terminate_timeout = 100
request_slowlog_timeout = 0
slowlog = var/log/slow.log
这里的pm是动态值,到底ph=dynamic好呢 还是static好呢?有的文章上说当pm=static是 只有pm mx_children生效如果dm设置为 dynamic,那么pm.max_children参数失效,后面3个参数生效。
那么从军哥的技术角度来说,我们该怎么去设置这4个参数呢 ? 求军哥解答下,谢谢了
回复 1# 的帖子
pm设置动态还是静态,要根据你的内存来定!1、如果你的内存足够大,例如4G或4G以上你可以将pm设置成静态(static),因为这样不需要进行额外的进程数目控制,会提高效率(频繁开关php-fpm进程也会有时滞的)所以内存够大的情况下开静态效果会更好。
比如4GB内存可以设置为pm.max_children = 80,那么按照每个进程占用15~30M内存计算,php-fpm耗费的内存就能控制在1.2G-2.5G的样子。
2、如果内存小,比如1G,那么指定静态的进程数量更加有利于服务器的稳定。这样可以保证php-fpm只获取够用的内存,将不多的内存分配给其他应用去使用,会使系统的运行更加畅通。
pm.max_children:静态方式下开启的php-fpm进程数量。
pm.start_servers:动态方式下的起始php-fpm进程数量。
pm.min_spare_servers:动态方式下的最小备用php-fpm进程数量。
pm.max_spare_servers:动态方式下的最大备用php-fpm进程数量。
下面是我1G内存VPS的配置:
pm = dynamic
pm.max_children = 24
pm.start_servers = 6
pm.min_spare_servers = 3
pm.max_spare_servers = 9
pm.max_requests = 2048
pm.process_idle_timeout = 10
request_terminate_timeout = 120
request_slowlog_timeout = 0
slowlog = log/slow.log
rlimit_files = 51200
rlimit_core = 0
[ 本帖最后由 cocub 于 2014-6-1 02:15 编辑 ] 我在服务器上 上次碰到过一个问题
pm = dynamic
pm.max_children = 100
使用MongoDB 的时候php 日志里经常看到 显示IO 输入输出错误。
最后,我把pm.max_children 改为500 ,问题解决。
pm = dynamic
pm.max_children = 500
所以说pm.max_children对 pm = dynamic 也有作用的。
所以,我现在1G 都设这么大
pm = dynamic
pm.max_children = 150
pm.start_servers = 8
pm.min_spare_servers = 4
pm.max_spare_servers = 20
pm.max_requests = 2048
pm.process_idle_timeout = 10
request_terminate_timeout = 180
512M 都设
pm = dynamic
pm.max_children = 80
pm.start_servers = 6
pm.min_spare_servers = 3
pm.max_spare_servers = 12
pm.max_requests = 2048
pm.process_idle_timeout = 10
request_terminate_timeout = 180
供参数,具体参数要设多少,可慢慢测试。 并与内存,VPS性能等相关。 使用pm = dynamic,有时日志里提示pm.max_children过小,调大pm.max_children值, 日志里的 pm.max_children警告就没有了。
注:php日志里无警告时,就不需调整
回复 4# 的帖子
请问你说的这个日志 位置在哪里? 哪个日志? 麻烦告诉一下 谢谢回复 5# 的帖子
/usr/local/php/var/log/php-fpm.log我用lnmp 为什么CPU使用率很高,
军哥,我用lnmp 为什么CPU使用率很高,只是压测phpinfo 90os 发表于 2015-8-18 20:44军哥,我用lnmp 为什么CPU使用率很高,只是压测phpinfo
没有开启OPCache是主要原因,我感觉!
页:
[1]