Linux进程多导致CPU卡死的问题

一、邮箱收到一堆监控,报警内空大致如下,很明显是CPU不够用了,IO也有点问题:主机: bwebser2__10.253.5.198 时间: 2015.11.15 15:25:17状态: PROBLEM 级别: Warning报警原因: Processor load is too high on bwebser2内容: Processor load (1 min average per core):value=52.53原始事件ID: 30605主机: bwebser2__10.253.5.198时间: 2015.11.18 15:42:23 状态: PROBLEM级别: Warning 报警原因: Disk I/O is overloaded on bwebser2 内容: CPU iowait time:value=68.7 %原始事件ID: 30812

二、用top查看进程,发现有近2000个进程

[html]  view plain  copy
  1. [root@bwebser2 ~]# top  
  2. top - 10:00:32 up 184 days, 19:55,  2 users,  load average: 49.39, 52.06, 53.04  
  3. Tasks: 1826 total,   1 running, 1825 sleeping,   0 stopped,   0 zombie  
  4. Cpu(s): 22.5%us,  3.8%sy,  0.0%ni, 31.7%id, 41.3%wa,  0.7%hi,  0.0%si,  0.0%st  
  5. Mem:   8058056k total,  7631808k used,   426248k free,   718780k buffers  
  6. Swap:        0k total,        0k used,        0k free,   358720k cached  


三、猜测可能和sendmail有关,查maillog日志,一直报警:No space left on device

[html]  view plain  copy
  1. [root@bwebser2 ~]# tail -f  /var/log/maillog       
  2. Nov 19 10:12:15 bwebser2 postfix/postdrop[19470]: warning: mail_queue_enter: create file maildrop/878633.19470: No space left on device  
  3. Nov 19 10:12:15 bwebser2 postfix/postdrop[27287]: warning: mail_queue_enter: create file maildrop/900082.27287: No space left on device  
  4. Nov 19 10:12:15 bwebser2 postfix/postdrop[12347]: warning: mail_queue_enter: create file maildrop/919377.12347: No space left on device  
  5. Nov 19 10:12:15 bwebser2 postfix/postdrop[21222]: warning: mail_queue_enter: create file maildrop/937001.21222: No space left on device  
  6. Nov 19 10:12:16 bwebser2 postfix/postdrop[25028]: warning: mail_queue_enter: create file maildrop/956095.25028: No space left on device  
  7. Nov 19 10:12:16 bwebser2 postfix/postdrop[28123]: warning: mail_queue_enter: create file maildrop/980022.28123: No space left on device  
  8. Nov 19 10:12:16 bwebser2 postfix/postdrop[26680]: warning: mail_queue_enter: create file maildrop/999360.26680: No space left on device  


四、用lsof确定sendmail、postdrop进程数量,进程数达到2000多个,为什么有这么多呢?

[html]  view plain  copy
  1. [root@bwebser2 ~]# lsof |grep sendmail |wc -l  
  2. 24682  
  3. [root@bwebser2 ~]# lsof |grep postdrop  |wc -l  
  4. 24108  



五、查看文件索引节点inode,发现空间满了:

[html]  view plain  copy
  1. [root@bwebser2 log]# df -i  
  2. Filesystem       Inodes   IUsed    IFree IUse% Mounted on  
  3. /dev/xvda1      1310720 1310720        0  100% /  
  4. tmpfs           1007257       1  1007256    1% /dev/shm  
  5. /dev/xvdb1     13107200    6142 13101058    1% /u01  
  6.   
  7. 用df -Th命令:  
  8. root@cwebser3 statistics]# df -Th  
  9. Filesystem     Type   Size  Used Avail Use% Mounted on  
  10. /dev/xvda1     ext4    20G  4.1G   15G  22% /  
  11. tmpfs          tmpfs  3.9G     0  3.9G   0% /dev/shm  
  12. /dev/xvdb1     ext3   197G   18G  170G  10% /u01  


六、通过清除zookeeper监控日志把腾出根的空间

[html]  view plain  copy
  1. cd /home/zookeeper/monitor   
  2. [root@bwebser2 monitor]# ll  
  3. total 8  
  4. drwxrwxr-x 163 zookeeper zookeeper 4096 Nov 12 00:16 charts  
  5. drwxrwxr-x 167 zookeeper zookeeper 4096 Nov 18 17:31 statistics  
  6. [root@bwebser2 monitor]# cd charts  
  7. rm -rf *  
  8. [root@bwebser2 monitor]# cd ../statistics/  
  9. [root@bwebser2 statistics]# rm -rf 201506*  
  10. [root@bwebser2 statistics]# rm -rf 201507*  
  11. [root@bwebser2 statistics]# rm -rf 201508*  
  12. [root@bwebser2 statistics]# rm -rf 201509*  
  13. [root@bwebser2 statistics]# rm -rf 201510*  


七、杀死所有sendmail和postdrop进程后

[html]  view plain  copy
  1. [root@bwebser2 ~]#ps -ef|grep sendmail | grep -v grep | awk  '{print "kill -9 " $2}' |sh  
  2. [root@bwebser2 ~]#ps -ef|grep postdrop | grep -v grep | awk  '{print "kill -9 " $2}' |sh  


八、lsof查看,进程数为0

[html]  view plain  copy
  1. [root@bwebser2 ~]# lsof |grep sendmail |wc -l  
  2. 0  
  3. [root@bwebser2 ~]# lsof |grep postdrop  |wc -l  
  4. 0  


九、被忽略的/etc/cron.d下的sysstat,修改sysstat,操作如下:

[html]  view plain  copy
  1. [root@bwebser2 cron.d]#cd /etc/cron.d/  
  2. [root@bwebser2 cron.d]# ll  
  3. total 12  
  4. -rw-r--r--. 1 root root 113 Nov 23  2013 0hourly  
  5. -rw-r--r--. 1 root root 108 Apr  7  2014 raid-check  
  6. -rw-r--r--. 1 root root 235 Nov 23  2013 sysstat  
  7.    
  8. vi sysstat添加&>/dev/null  
  9. # run system activity accounting tool every 10 minutes  
  10. */10 * * * * root /usr/lib/sa/sa1 1 1 &>/dev/null  
  11. # generate a daily summary of process accounting at 23:53  
  12. 53 23 * * * root /usr/lib/sa/sa2 -A &>/dev/null    


十、再次用top命令查看进程只有100多个,监控报警消失,问题搞定!

[html]  view plain  copy
  1. [root@bwebser2 cron.d]# service sendmail restart  
  2. sendmail: unrecognized service  
  3. [root@cwebser3 cron.d]# top  
  4. top - 10:43:12 up 184 days, 20:37,  2 users,  load average: 1.03, 1.54, 14.15  
  5. Tasks: 105 total,   1 running, 104 sleeping,   0 stopped,   0 zombie  
  6. Cpu(s): 43.4%us,  1.3%sy,  0.0%ni, 47.9%id,  7.0%wa,  0.3%hi,  0.0%si,  0.0%st  
  7. Mem:   8058056k total,  6762996k used,  1295060k free,  1422060k buffers  
  8. Swap:        0k total,        0k used,        0k free,   381392k cached
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值