zoukankan      html  css  js  c++  java
  • php-fpm服务挂掉

    今天发了个链接,可能同时在线的人瞬间比较多,结果网站报503错误,回去打开php-fpm错误日志一看,php-fpm服务挂掉了,报如下错误:

    [04-Apr-2016 15:38:04] NOTICE: systemdmonitorintervalsetto 10000ms
    [05-Apr-2016 19:03:08] WARNING: [poolwww] seemsbusy (youmayneedto increasepm.start_servers, or pm.min/max_spare_servers), spawning 8 children, thereare 0 idle, and 29 totalchildren
    [05-Apr-2016 19:03:09] WARNING: [poolwww] seemsbusy (youmayneedto increasepm.start_servers, or pm.min/max_spare_servers), spawning 16 children, thereare 0 idle, and 34 totalchildren
    [05-Apr-2016 19:03:11] WARNING: [poolwww] seemsbusy (youmayneedto increasepm.start_servers, or pm.min/max_spare_servers), spawning 32 children, thereare 0 idle, and 39 totalchildren
    [05-Apr-2016 19:03:12] WARNING: [poolwww] seemsbusy (youmayneedto increasepm.start_servers, or pm.min/max_spare_servers), spawning 32 children, thereare 0 idle, and 44 totalchildren
    [05-Apr-2016 19:03:13] WARNING: [poolwww] seemsbusy (youmayneedto increasepm.start_servers, or pm.min/max_spare_servers), spawning 32 children, thereare 0 idle, and 49 totalchildren
    [05-Apr-2016 19:03:14] WARNING: [poolwww] serverreachedpm.max_children setting (50), considerraisingit
    

    错误提示建议增加pm.start_servers数量,打开我的php-fpm配置:

    pm.max_children = 50
     
    ; Thenumberofchild processescreatedonstartup.
    ; Note: Usedonlywhenpmis setto 'dynamic'
    ; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
    pm.start_servers = 15
     
    ; Thedesiredminimumnumberofidleserverprocesses.
    ; Note: Usedonlywhenpmis setto 'dynamic'
    ; Note: Mandatorywhenpmis setto 'dynamic'
    pm.min_spare_servers = 5
     
    ; Thedesiredmaximumnumberofidleserverprocesses.
    ; Note: Usedonlywhenpmis setto 'dynamic'
    ; Note: Mandatorywhenpmis setto 'dynamic'
    pm.max_spare_servers = 35
    

    这里pm.start_servers之前我设置为5,注意配置文件也说明start_servers的值默认是max_spare_servers-min_spare_servers的一半。(ps:具体的值要根据服务器配置情况和压力测试得出)

    网站服务器是阿里云1G带宽,1G内存,1核CPU配置,关键还在一台机子上装了数据库,redis各种服务。

    几个php-fpm重要参数说明

    pm.max_children = 24
    

    static模式下创建的子进程数或dynamic模式下同一时刻允许最大的php-fpm子进程数量

    pm.start_servers = 16
    

    动态方式下的起始php-fpm进程数量

    pm.min_spare_servers = 12
    

    动态方式下服务器空闲时最小php-fpm进程数量

    pm.max_spare_servers = 24
    

    动态方式下服务器空闲时最大php-fpm进程数量

    经验人士的总结:

    一般php-fpm进程占用20~30m左右的内存就按30m算。如果单独跑php-fpm,动态方式起始值可设置物理内存Mem/30M,由于大家一般Nginx、MySQL都在一台机器上,于是预留一半给它们,即php-fpm进程数为$Mem/2/30。

    调整之后的几个值是:

    pm = dynamic
    pm.max_children = 50
    pm.start_servers = 15
    pm.min_spare_servers = 10
    pm.max_spare_servers = 40
    

    重启php-fpm服务:service php70-php-fpm reload,继续使用top命令查看内存使用情况,发现十几个php-fpm启动。

  • 相关阅读:
    Ink——一款使用React风格开发命令行界面应用(CLI App)的nodejs工具
    编程语言相关名词解释汇总
    使用Webpack对Css文件压缩处理的思考
    一种通过async/await实现函数同步执行的方式
    成长的道路上,我很幸运
    Todolist分别用React与Vue的实现与思考
    Unity 框架篇
    扇形技能指示器
    C# Socket和protoBuf新手村教程
    判断点在多边形内部
  • 原文地址:https://www.cnblogs.com/doseoer/p/5966464.html
Copyright © 2011-2022 走看看