关于php-fpm子进程达到上限并且浏览器访问显示504错误

今天上班遇到一个非常奇怪的事情,公司监控服务器之前都是在正常运行,使用nginx+php-fpm,并且监控服务器上部署这其他部门在使用的几个站点,从早上上班开始发现监控显示页面打不开,各种查找原因,最后发现只有在重启php-fpm后,监控页面才能正常访问,访问正常后,由于最近事情比较多,所以没太多关注。下午的时候我又打开看了下,发现又和上午一样,浏览器报504错误,并且重启php-fpm之后又能正常访问了;发现这个问题有点过分了,我想肯定起来不久又会重新报504错误的;过了两分钟,果然,继续访问不了,504错误。这次重新登上服务器,查看了下php-fpm的error日志:

按照它给的建议,找php-fpm配置文件。修改了

pm.max_children = 50

pm.start_servers = 15

pm.min_spare_servers = 10

pm.max_spare_servers = 30

的值,这个值是修改之前的,修改之后分别为:

pm.max_children = 100

pm.start_servers = 60

pm.min_spare_servers = 50

pm.max_spare_servers = 75

这个值的跨度还是比较大的,这是在我几次尝试之后不报错的情况下修改的;但是修改完之后,监控页面时可以访问了,出现的问题却让我们很郁闷,数据库的所有监控全部报警,后来赶紧查看了下访问日志,发现来自全国各地的公网IP在不停的访问,这个问题让我第一印象就是被攻击了,立马查看了下系统的访问日志,发现的确有很多的访问进来,但是作为一台独立的线上服务器,即使有不断的访问进来也不至于导致所有的数据库连接报警的,尝试着减少访问,看看能不能消除数据库报警,但是加了各种措施之后,数据库报警依然存在,我又将php-fpm的配置参数还原,尝试着重启登入数据库,但是发现登入数据库时提示缺少sock文件,登不进去;找到配置文件,按照配置文件中的sock路径看了下,是没有这个sock文件;到网上搜了许多,并没有好的解决方法,便向MySQL的相关QQ群里面询问,后来,有人说重启之后会自动生成sock文件,我便试着重启了下,结果又发现了问题:

这个问题我就郁闷了,根本停不掉啊;最后各种方法之后,决定kill掉。但是,问题又来了,kill关闭之后,呵呵。。。起不来,报

Starting MySQL... ERROR! The server quit without updating PID file (/home/data/mysqldata/localhost.localdomain.pid).

这个错误,看了下这个目录下的pid文件,不存在。。进入/home/data/mysqldata目录,查看了后200行的localhost.localdomain.err文件

最后的原因我想大家谁也想不到,群里的人告诉我Errcode 28一般都是磁盘空间不够导致,我赶紧看了下,使用率百分之百,顿时,心中。。。。。清理完备份文件,过几分钟,数据库可以正常启用,监控也正常了。

这个问题真的不算是什么问题,可是正因为运维人员的疏忽,导致这种事情发生,还好服务器暂时没有接入用户,要不然问题可就大了,做了定期备份,竟然没做定期清理,这种错误真的不应该犯,当然,我也进行检讨,查了所有的问题,就是没有查看磁盘空间,导致走了那么大的弯路,希望各位运维人员也能以此为戒!!

时间: 2024-07-30 13:48:21

关于php-fpm子进程达到上限并且浏览器访问显示504错误的相关文章

nginx和fpm的进程数配置和502,504错误

一般来说 php-cgi进程数不够用.php执行时间长(mysql慢).或者是php-cgi进程死掉,都会出现502错误: Nginx 504 Gateway Time-out则是与nginx.conf的设置有关: 1.502 和 php-fpm.conf 1.request_terminate_timeout引起的资源问题 request_terminate_timeout的值如果设置为0或者过长的时间,可能会引起file_get_contents的资源问题. 如果file_get_conte

tomcat启动不报错,但浏览器访问出现404错误,一直不进入controller

问题出在tomcat的server的配置文件部分.这个path应该是自己的项目名.而我这块错误的为我上个项目的项目名 原文地址:https://www.cnblogs.com/sllcom/p/8566415.html

手机端微信扫描二维码直接打开外部浏览器访问网页的解决办法

想必大家会经常碰到网页链接在微信内无法打开和微信内无法打开app下载页的情况.通常这种情况微信会给个提示 “已停止访问该网址” ,那么导致这个情况的因素有哪些呢,主要有以下四点 1.网页链接被举报次数过多.2.网页含违规内容,含敏感词.3.被腾讯检测系统判断为诱导分享内容.4.转发分享次数达上限 那么上述问题怎么办呢?只要我们实现微信跳转浏览器的功能即可,下面给大家介绍下这个功能的实现方法. 功能目的 生成微信跳转链接,实现微信内置浏览器跳转外部浏览器打开网页. 操作步骤 第一步:打开 Elep

Linux系统安装Discuz,通过windows浏览器访问遇到的一般性问题。错误代码403、462

在Linux系统里配置完虚拟主机后 vim /usr/local/apache2/conf/httpd.conf /vhosts   #搜索 将 # include conf/extra/httpd-vhosts.conf 前面的注释符号去掉,生效 vim /usr/local/apache2/conf/extra/httpd-vhosts.conf 配置完成后. 用浏览器访问www.test.com 或者 www.aaa.com      #自定义的域名或者别名 一.如果遇到错误代码403,打

php -- php模拟浏览器访问网址

目前我所了解到的在php后台中,用php模拟浏览器访问网址的方法有两种: 第一种:file_get_contents($url) 通过php内置的 file_get_contents 函数可以模拟浏览器访问网址的行为,取的结果就是那个网址所返回的所有东西(这种情况一般用于返回的是 xml 格式字符串或者 json 字符串) 第二种:curl curl 是 php 提供的内置函数,其功能非常强大,封装常用的http,soap,ftp等协议 微信主要通过其进行模拟POST请求 1)初始化curl 2

浏览器访问Servlet

浏览器访问Servlet1.指定一个Servlet路径(                     在web.xml :              <servlet>              <servlet-name>随意命名</servlet-name>              <servlet-class>包名.类名</servlet-class>              <init-param>              

python_java_selenium_ jenkins持续集成Firfox_chrome浏览器不显示的解决方法?

python_java_selenium_ jenkins持续集成Firfox_chrome浏览器不显示的解决方法: 原因:因为jenkins是用windows installer 安装成 windows的服务了,那么jenkins是计算机服务理的一个后台服务,所以跑cases 的时候不显示浏览器 解决办法:1.我们需要关掉jenkins后台服务,让他从cmd(dos窗口)启动,类似于tomcat的手动启动下面的方法适合不用tomcat的同学(注意,用也可以配置好Tomcat放在webapp下启

apache‘禁止指定user_agent’ 和 ‘禁止用户通过浏览器访问某个目录’

禁止指定user_agent 本节介绍如何通过rewrite实现限制指定 user_agent 的请求: 即禁掉不想让那些引擎访问的请求 编辑虚拟主机配置文件 [[email protected] ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf (找到"域名301跳转的配置"即"rewrite的mod配置"内写入) RewriteCond %{HTTP_USER_AGENT} ^.*curl.* [NC

js new Date(&quot;2016-07-01 08:00:00&quot;) 格式在IE内核浏览器中显示NaN的问题

js new Date("2016-07-01 08:00:00") 格式在IE内核浏览器中显示NaN的问题 废话就不多了,var dd = new Date("2016-07-01 08:00:00");这种格式在ff,chrome,opera,safari等浏览器中没有问题的,而在IE内核浏览器(猎豹,360兼容模式)等会出现无效NaN的问题, 查了一下,原来是格式的问题,注意日期的格式,如果将上面的代码修改为var dd = new Date("20