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

前言

最近有些 MJJ 采集博客,使内存有些超标,看了下文件发现军哥的 LNMP 的php-fpm配置是按最低标准设置的,这里可以稍微修改下,适用于自己的 VPS 配置。

图片[1] - #教程# – LNMP优化php-fpm,控制进程数目,使系统的运行更加畅通 - 云线路

修改说明

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  警告就没有了。

    © 本站文章随意转载,但请注明出处!
    THE END
    点赞6 分享
    评论 抢沙发
    头像
    务必使用真实的邮箱地址评论,虚假邮箱的评论将不通过审核及无回复。
    提交
    头像

    昵称

    取消
    昵称表情代码图片

      暂无评论内容