今天上班遇到一个非常奇怪的事情,公司监控服务器之前都是在正常运行,使用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一般都是磁盘空间不够导致,我赶紧看了下,使用率百分之百,顿时,心中。。。。。清理完备份文件,过几分钟,数据库可以正常启用,监控也正常了。

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

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

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

    502 和 php-fpm.conf 1.php-cgi进程数不够用.php执行时间长,导致没有空闲进程处理新请求. 2.php-cgi进程死掉.php-fpm超时时间短,当前进程执行超时关闭连接. ...

  2. Selenium 3 + BrowserMobProxy 2.1.4 模拟浏览器访问 (含趟坑)

    背景 Selenium 是一个Web自动化测试的组件,可基于WebDriver去控制弹出浏览器去做一系列Web点击或行为测试(当然也可以去做一些邪恶的事..),减少重复人工网页测试的开销.Browse ...

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

    python_java_selenium_ jenkins持续集成Firfox_chrome浏览器不显示的解决方法: 原因:因为jenkins是用windows installer 安装成 windo ...

  4. 浏览器访问Servlet

    浏览器访问Servlet1.指定一个Servlet路径(                     在web.xml :              <servlet>             ...

  5. sublime text3 前端编译神器,浏览器实时显示

    前端编译器有很多,Dreamweaver,sublime text ,webstorm,但在使用之后感觉sublime text3就是前端的编译神器 首先sublime text3最好使用英文原版,虽 ...

  6. 用chrome模拟微信浏览器访问需要OAuth2.0网页授权的页面

    现在很流行微信网页小游戏,用html5制作的小游戏移过来,可以放到微信浏览器中打开,关键是可以做成微信分享朋友圈的形式,大大提高游戏的传播,增强好友的游戏互动. 微信浏览器中打开网页游戏效果还不错,对 ...

  7. 解决使用IIS5.0配置的FTP服务器,客户端浏览器访问时无法获取目录列表的问题。

    我在windows xp sp3下利用iis构架了FTP服务器,允许且只允许匿名用户登陆.但刚开始配置好后,不管是使用命令行模式还是使用浏览器都发现无法访问. 于是怀疑防火墙屏蔽端口所致,果不其然,在 ...

  8. Windows Server 2003服务器.net4.0+IIS6.0的服务器,IE11浏览器访问的不兼容性

    工作中发生了一件诡异的事情: 程序在Win7+.NET4.0+IIS7.5的服务器部署,IE8和IE11请求时,响应的样式都正常. 但是在美的同事反映说,Windows Server 2003服务器. ...

  9. 解决Ext.form.DateField在浏览器中显示可能有问题

    解决Ext.form.DateField在浏览器中显示可能有问题,界面将会拉的很长很长.如下图:  办法: 1:设置css的长度 .x-date-menu { padding-top:2px;padd ...

随机推荐

  1. 分布式的Id生成器

    项目中需要一个分布式的Id生成器,twitter的Snowflake中这个既简单又高效,网上找的Java版本 package com.cqfc.id; import org.slf4j.Logger; ...

  2. WebClient 实现多文件/文本同时上传

    public class CreateBytes { Encoding encoding = Encoding.UTF8; /**/ /// <summary> /// 拼接所有的二进制数 ...

  3. 汤姆大叔 javascript 系列 第20课 最后的5到javascript题目

    博客链接:http://www.cnblogs.com/TomXu/archive/2012/02/10/2342098.html 原题: 大叔注:这些题目也是来自出这5个题目的人,当然如果你能答对4 ...

  4. 一堆LCT板子

    搞了一上午LCT,真是累死了-- 以前总觉得LCT高大上不好学不好打,今天打了几遍感觉还可以嘛= =反正现在的水平应付不太难的LCT题也够用了,就这样好了,接下来专心搞网络流. 话说以前一直YY不出来 ...

  5. NXP NFC移植及学习笔记(原创)

    NFC功能介绍 NFC 目前使用的三种功能: 1. P2P模式:基于LLCP协议的基础上,以NDEF数据交换格式来通信. 2. 读写模式:当作为读卡器,对NFC Tag的读写. 3. 卡模拟模式:模块 ...

  6. git tag使用标记

    git跟其它版本控制系统一样,可以打标签(tag), 作用是标记一个点为一个版本号,如0.1.3, v0.1.7, ver_0.1.3.在程序开发到一个阶段后,我们需要打个标签,发布一个版本,标记的作 ...

  7. 分享一个常用Adb命令

    分享一个常用Adb命令 首先 首先感谢@xuxu的常用adb命令,收益良多,但是已经不能满足于我,所以补充了下. 再者 好久没发帖了,最近论坛老司机们都在讨论/总结,我就用这个干货回报吧. 最后 基于 ...

  8. mysql循环操作

    #如果存在jyf_test存储过程则删掉 DROP PROCEDURE IF EXISTS jyf_test; DELIMITER // #创建存储过程 CREATE PROCEDURE jyf_te ...

  9. C++ 字符处理函数

    C/C++里有一个头文件#include <ctype.h>,里面定义了很多字符函数,在实际开发中,用起来很方面. int isalpha(int ch)  若ch是字母('A'-'Z', ...

  10. VC++6.0 Win32 C2065:SM_XVIRTUALSCREEN

    百度了了一大堆,都说让重装vc++6.0,然而并没有什么卵用. 解决办法:找到你的vc6.0安装路径下的WINDOWS.H,将0x0400改为0x0500 Window各个版本对应的宏值WINVER: