前言
最近,有些采集博客,使内存有些超标,看了下文件发现军哥的 LNMP 的php-fpm配置是按最低标准设置的,这里可以稍微修改下,适用于自己的 VPS 配置。
修改说明
php-fpm 设置动态还是静态,要根据你的 VPS 内存来定,如果内存小,比如 1G,那么指定静态的进程数量更加有利于服务器的稳定。这样可以保证 php-fpm 只获取够用的内存,将不多的内存分配给其他应用去使用,会使系统的运行更加畅通。
如果你的内存足够大,例如 4G 或 4G 以上你可以将 pm 设置成静态(static ),因为这样不需要进行额外的进程数目控制,会提高效率(频繁开关 php-fpm 进程也会有时滞的)所以内存够大的情况下开静态效果会更好。
比如 4GB 内存可以设置为 pm.max_children = 80 ,那么按照每个进程占用 15~30M 内存计算,php-fpm 耗费的内存就能控制在 1.2G-2.5G 的样子。
这里主要修改几个参数,说明一下:
pm.max_children:静态方式下开启的 php-fpm 进程数量;
pm.start_servers:动态方式下的起始 php-fpm 进程数量;
pm.min_spare_servers:动态方式下的最小备用 php-fpm 进程数量;
pm.max_spare_servers:动态方式下的最大备用 php-fpm 进程数量;
这里是军哥 LNMP 的/usr/local/php/etc/php-fpm.conf 默认 1G 配置,LNMP 也会根据内存大小安装后配置不同,仅用于参考
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 6
pm.max_requests = 1024
pm.process_idle_timeout = 10s
request_terminate_timeout = 100
request_slowlog_timeout = 0
slowlog = var/log/slow.log
博主的机器是 1G 内存,修改后的配置可以参考,具体参数要设多少,可自己慢慢测试
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 = 10s
request_terminate_timeout = 120
request_slowlog_timeout = 0
slowlog = var/log/slow.log
结语
博主在使用pm = dynamic , 有时日志(/usr/local/php/var/log/php-fpm.log )里提示 pm.max_children 过小, 调大 pm.max_children 值, 日志里的 pm.max_children 警告就没有了。
|