找回密码
 立即注册
快捷导航

LNMP优化php-fpm,控制进程数目,使系统的运行更加畅通

[复制链接]
西梦花客 2023-8-15 01:35:05 | 显示全部楼层

前言

最近,有些采集博客,使内存有些超标,看了下文件发现军哥的 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 警告就没有了。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

温馨提示

关于 注册码 问题

      由于近期经常大量注册机器人注册发送大量广告,本站开启免费入群领取注册码注册网站账号,注册码在群公告上贴着...

关于 注册码 问题

      由于近期经常大量注册机器人注册发送大量广告,本站开启免费入群领取注册码注册网站账号,注册码在群公告上贴着...

Archiver|手机版|小黑屋|DLSite

GMT+8, 2024-11-21 23:14

Powered by Discuz! X3.5 and PHP8

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