今天发了个链接,可能同时在线的人瞬间比较多,结果网站报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启动。

php-fpm服务挂掉的更多相关文章

  1. 用Docker启动php-5.6 fpm服务配合宿主机nginx运行php测试环境

    因为Ubuntu18.04默认的openssl版本就是1.1.0, 而PHP5.6无法在openssl 1.1下编译 "PHP 5.6 is receiving only security ...

  2. PHP-7的FPM服务的启动

    1.PHP 7的FPM服务位置:/ect/init.d/php7.0-fpm 2.启动:sudo service php7.0-fpm reload

  3. mongodump 失败且导致mongo服务挂掉【本质原因,wt文件损坏】

    ====================================================== 标题遇到的问题是我要解决的问题的中间环节. 原本问题是:需要在之前standlone的Mo ...

  4. [网站日志]当Memcached缓存服务挂掉时性能监视器中的表现

    我们用的Memcached缓存服务是阿里云OCS,今天晚上遇到了一次OCS挂掉的情况(计划中的升级),看一下性能监视器中的表现,也许对分析黑色1秒问题有帮助. 应用日志中错误: 2014-06-05 ...

  5. JIRA应用的内存参数设置不当+容器没有对资源进行限制导致服务挂掉的例子

    背景: 应用的部署结构是这样的:使用rancher管理的Docker集群,有三台物理主机,二十多个Docker容器, 提供的功能是问题跟踪(JIRA),文档管理(Confluence),代码托管(sv ...

  6. zookeeper 服务挂掉重启后,dubbo 服务是不会自动重新注册上的

    今天遇到一个问题: 系统初始有两个dubbo 服务 , A 和 B , 都是正常注册到zookeeper 上的, 但是zookeeper 服务机房 断电导致 服务宕机, 那就重启吧. 一切正常. 但是 ...

  7. Redis服务挂掉后,重启时闪退

    这个时候去进程管理器里找一个 redisservice.exe 的进程..杀死他  杀死他  杀死他!!! 整理领结,嘬口咖啡, 嗯... 然后再来启动服务..

  8. CentOS7linux系统安装fpm服务,自己制作rpm包文件

    1.安装ruby环境 [root@oldboy /]# yum install -y ruby ruby-devel rubygems gem install fpm gem sources --ad ...

  9. ESXi 6.7 的https服务挂掉处理方法 503 Service Unavailable

    首先进入EXSi开启SSH(ESXi的主机控制台,非web控制台,是安装esxi的控制台) 然后 /etc/init.d/hostd status 显示已停止, 使用 /etc/init.d/host ...

随机推荐

  1. RAID的简单介绍

    该文章全部复制转载于:http://blog.jobbole.com/83808/,只为做笔记供自己查看 简介 RAID是一个我们经常能见到的名词.但却因为很少能在实际环境中体验,所以很难对其原理 能 ...

  2. bzoj1051

    就是一个tarjan #include<iostream> #include<stack> #include<cstdio> using namespace std ...

  3. AOPR弹出Order Now窗口怎么办

    当我们忘记了我们自己设置的office密码的时候,需要一款office密码破解软件来帮我们破解,Advanced Office Password Recovery就是这样的一款软件,其简称AOPR.试 ...

  4. WebClient 使用

    --post  请求 public static string PostMsg(Guid orgid, int page, int rows)        {            System.N ...

  5. 【C++实现python字符串函数库】strip、lstrip、rstrip方法

    [C++实现python字符串函数库]strip.lstrip.rstrip方法 这三个方法用于删除字符串首尾处指定的字符,默认删除空白符(包括'\n', '\r', '\t', ' '). s.st ...

  6. python学习笔记10(Python的内存管理)

      用这张图激励一下自己,身边也就只有一位全栈数据工程师!!! 32. Python的内存管理 1. 对象的内存使用 对于整型和短字符串对象,一般内存中只有一个存储,多次引用.其他的长字符串和其他对象 ...

  7. Redis哈希-hash

    Redis的hash类型数据存储极为重要 hset K V  赋值一个hash 其中V为 (key, value) 127.0.0.1:6379> hset user id 1(integer) ...

  8. hadoop1.1.2安装过程

    实验环境:VMware 10.0.1+CentOS-6.6-i386 +jdk-6u24-linux-i586+hadoop-1.1.2.tar.gz 普通用户:michael 集群规划:1台mast ...

  9. body中设置-webkit-scrollbar竖向滚动条,在手机浏览器上无效

    暂时无解,如果是chrome的PC模式,滚动条是没有的,但如果是手机模式,滚动条会出现,且无法设置其样式,滚完后会自动消失. 如果设置div这些块元素,完全没问题.

  10. Jenkins 2.x新建节点配置(Windows)

    2.0版本以上默认加入了权限插件,所以在进入主界面时是需要登录的. 一.主界面->[系统管理]->[管理节点]->[新建节点],进行节点的添加: 二.输入节点名称,已经选择[Perm ...