centos 服务器php-fom ,mysqld,nginx等多个进程超过100%

此图是已经修复后截图,当时操作比较紧急没有截过图。
今天下午服务器需要重启  因为内存吃的比较紧 而且快一年了没重启,博主就给重启啦
没想到 重启后的半个小时后服务器就不行了,网站非常慢 于是ssh 用 top 查看 主要是php-fom ,mysqld,nginx等多个进程超过100%,这些进程只有在最高并发时才可能这样 并且会释放和降低,当前是从不降低。这样就不正常了,过了几分钟后服务器的ssh挂了 服务器网站随后也挂了
  因为以前叫机房硬重启 出过系统损坏问题 为了防止再现此景  立即开车去机房
 显示器连接后许久没有响应,无法登录系统操作
当时拍了张图:
半个小时后重启服务器 登录立即停止相关可疑服务 离开机房  回公司远程登录分析处理问题
于是在基本上没什么服务运行的情况  使用top -H 和  iotop 查看
最终总结以下问题:
fmsedge   9000%
fmsadmin   9400%
fmsmaster  1000%
ksoftirqd/6  500%
redis-server  300%
sftp-server   100%
sync_         200%
centos jbd2   300%
php-fom  100%
mysqld   100%
nginx 100%
数据相当吓人 于是先处理  前三个进程
fms 关闭它
  1. 1,进入FMS安装目录
  2. cd /opt/adobe/fms/
  3. 2,关闭FMS服务
  4. ./fmsmgr server fms stop -- 停止FMS
  5. ./fmsmgr adminserver stop -- 停止Admin Server
这样还是不行 问题依旧
(疑似Redis导致的)  关闭 redis
进入目录后关闭    
停止 Ng mysql 
还是不行  监控一段时间后发现 jbd2 有些不正常 于是开始了解
    jbd2是ext4文件系统的一部分  因此问题 必定是系统层的  引发的系列问题
资料曾说 ext4文件系统出现过bug,bug原理大致是,文件的写和请求会导致其中一个int型的值不断增大,最后增大到超出了自身的范围 —— 变成负值 。就会触发该bug 

那么这就很有可能,服务器运行快一年了,一直没事 重启就有事,那么只需要打这个补丁问题就可能被解决
参考此文  的修复日志 但博主并非是照搬此文
当机立断 马上运行
yum update
大约更新200多M 执行完成后 重启系统
top -H
然后得到  结果 如图1 所示
   终于问题被解决了。有惊无险 折腾完毕! 至此流量损失15%以上

随后查看下连接数:
  1. netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
当前在线数又有了  151
你也可以用简单的指令查询  当然包含结果有些不一样 不会分开
  1. netstat -nat|grep ESTABLISHED|wc -l
做个记号,留个思路  希望草根某天搜索时刚好符合你的需求!!

非凡网 博客

我只是帮你筛选价值。

你也许喜欢

发表评论