zoukankan      html  css  js  c++  java
  • Linux_crontab 记一次问题排查

    最近nginx访问经常出现502, 甚至还出现进程无法创建的问题,首先是怀疑Linux连接数设置有问题, ulimit -u查看连接数为2w,应该不算低,后来就给调到的6w;

    查下Linux上的当前的线程数,

    pstree -p| wc -l

    存在七千多,怎么会呢?

    于是pstree -p | more查看,出现很多下面的进程:

    |-crond(82160)---sendmail(82491)---postdrop(82504)

               |              |-crond(82647)---sendmail(83087)---postdrop(83108)

               |              |-crond(83150)---sendmail(83673)---postdrop(83691)

               |              |-crond(83206)---sendmail(83528)---postdrop(83542)

               |              |-crond(83266)---sendmail(83586)---postdrop(83604)

               |              |-crond(84205)---sendmail(84734)---postdrop(84750)

               |              |-crond(85167)---sendmail(85703)---postdrop(85723)

               |              |-crond(85310)---sendmail(85637)---postdrop(85651)

               |              |-crond(85338)---sendmail(85890)---postdrop(85905)

               |              |-crond(85842)---sendmail(86373)---postdrop(86387)

               |              |-crond(85894)---sendmail(86066)---postdrop(86079)

               |              |-crond(86075)---sendmail(86445)---postdrop(86460)

               |              |-crond(86611)---sendmail(87142)---postdrop(87161)

               |              |-crond(86626)---sendmail(86959)---postdrop(86973)

               |              |-crond(86988)---sendmail(87518)---postdrop(87536)

               |              |-crond(87430)---sendmail(87962)---postdrop(87983)

               |              |-crond(87492)---sendmail(87814)---postdrop(87827)

               |              |-crond(87547)---sendmail(87892)---postdrop(87907)

               |              |-crond(88010)---sendmail(88333)---postdrop(88348)

               |              |-crond(88308)---sendmail(88638)---postdrop(88652)

               |              |-crond(88531)---sendmail(88863)---postdrop(88876)

    ps查看一下

    pcp       3459  3117  0 19:55 ?        00:00:00 /usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t -f pcp

    pcp       8604  7848  0 19:58 ?        00:00:00 /usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t -f pcp

    root     36239 33960  0 20:20 pts/1    00:00:00 grep --color=auto sendmail

    pcp      40626 40296  0 19:25 ?        00:00:00 /usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t -f pcp

    pcp      43402 43070  0 18:25 ?        00:00:00 /usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t -f pcp

    pcp      46681 46151  0 18:28 ?        00:00:00 /usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t -f pcp

    pcp      49573 49040  0 19:28 ?        00:00:00 /usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t -f pcp

    pcp      95832 95493  0 18:55 ?        00:00:00 /usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t -f pcp

    pcp      99052 98517  0 18:58 ?        00:00:00 /usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t -f pcp

    果然很多sendmail的进程(为啥user是pcp? ),怀疑是crontab执行的时候起来的,先把进程kill了再说

    ps -ef | grep '/usr/sbin/postdrop' | awk '{print $2}' | xargs kill -9

     

    在crontab -e中开始加上MAILTO="",在/etc/crontab中设置MAILTO=""

    ,继续观察,本来以为问题解决了,其实并没有。。。,过来一阵子又出现sendmail的进程,进程查。

    查到/etc/cron.d/下面的文件(crontab会加载里面的文件),刚好里面有个pcp-pmie,pcp-pmlogger,怀疑是这个问题,打开这两个文件一看:

     

    # daily processing of pmie logs (with compression enabled)

    08     0  *  *  *  pcp  /usr/libexec/pcp/bin/pmie_daily -X xz -x 3

    # every 30 minutes, check pmie instances are running

    28,58  *  *  *  *  pcp  /usr/libexec/pcp/bin/pmie_check -C

    crontab并没有加 &>/dev/null,就会触发sendmail,问题定位到了,将pcp开头的两个文件的crontab命令加上&>/dev/null

    如下:

    # daily processing of pmie logs (with compression enabled)

    08     0  *  *  *  pcp  /usr/libexec/pcp/bin/pmie_daily -X xz -x 3 &>/dev/null

    # every 30 minutes, check pmie instances are running

    28,58  *  *  *  *  pcp  /usr/libexec/pcp/bin/pmie_check -C &>/dev/null

     

    再继续观察,maillog已经没有发送了(目前是20:30,编辑时间为20:20)

    tail -f  /var/log/maillog

    Apr  9 20:20:12 data-monitor-web00 postfix/postdrop[40639]: warning: mail_queue_enter: create file maildrop/244959.40639: Permission denied

    Apr  9 20:20:12 data-monitor-web00 postfix/postdrop[95845]: warning: mail_queue_enter: create file maildrop/402015.95845: Permission denied

    Apr  9 20:20:21 data-monitor-web00 postfix/postdrop[43415]: warning: mail_queue_enter: create file maildrop/391573.43415: Permission denied

    Apr  9 20:20:21 data-monitor-web00 postfix/postdrop[99072]: warning: mail_queue_enter: create file maildrop/439228.99072: Permission denied

  • 相关阅读:
    DeepLearning.ai学习笔记(二)改善深层神经网络:超参数调试、正则化以及优化--Week2优化算法
    DeepLearning.ai学习笔记(二)改善深层神经网络:超参数调试、正则化以及优化--Week1深度学习的实用层面
    通俗理解决策树中的熵&条件熵&信息增益
    KNN实现手写数字识别
    softmax分类算法原理(用python实现)
    DeepLearning.ai学习笔记(一)神经网络和深度学习--Week4深层神经网络
    博客园自定义皮肤扁平化设计
    神经网络权重初始化问题
    OpenVirteX 安装
    从个人的角度谈谈本次GNTC大会的收获
  • 原文地址:https://www.cnblogs.com/dpains/p/8761700.html
Copyright © 2011-2022 走看看