老 WordPress 插件生成大量待发邮件导致服务器高负载

» 2013-11-01 折腾 38条评论

今天在调整服务器配置,然后发现服务器一直高负载(一直在 10 点几,正常应该是 0.5 左右),查看了很久才发现进程里面多了很多 exim4,大家都知道 exim4 是 debian 默认邮件服务系统。

猜疑

难道是某个博客在发垃圾邮件或者被挂马?但服务器上的博客都是老朋友的,基本在文囧月经以上状态,不太可能有人折腾导致,而且都是“规规矩矩”的,所有被挂马也不太可能。

查找

查看了下 exim4 的日志(/var/log/exim4/mainlog),发现服务器在用 ashun 的邮箱地址发邮件,错误类似:(ooxx@gmail.com 表示邮箱地址)

2013-11-01 18:45:19 1Vbf5W-0001WZ-I9 == ooxx@gmail.com routing defer (-51): retry time not reached
2013-11-01 18:45:19 1Vbd7T-00081Y-D9 == ooxx@gmail.com routing defer (-51): retry time not reached
2013-11-01 18:45:19 1Vbczx-0003pr-Mp == ooxx@gmail.com routing defer (-51): retry time not reached
2013-11-01 18:45:19 1Vbd30-0006Ly-UI == ooxx@gmail.com routing defer (-51): retry time not reached

放G查找相关

网上查了一下,好像很少人碰到,然后去国外找,也少人碰到,不过还是找到了相关资料:大概是待发邮件很多导致大量 exim4 进程。

一般解决方法

可以用下面的命令删除待发邮件

exim -M <message-id>

注:<message-id> 就是上面错误里面的日期后面的那个id,如:1Vbd30-0006Ly-UI

主要问题

但是你知道现在这个 /var/log/exim4/mainlog 有多大么?已经生成了 10 个 gz,全部加起来有 2G 以上!!!我的天啊!而且那个 message-id 不知道有多少个(日志翻了n页,每个id都不同)……

于是我去邮件待发目录:/var/spool/exim4/input 看了下,ls 了半天都没列完文件,可想这里有多少个待发邮件了,起码是“万”级单位了。

真正的解决方法:rm

1. 把 exim4 进程全部 kill 掉:

killall -9 exim4

2. 然后我在 /var/spool/exim4/input 目录下敲了 rm -f * 竟然提示错误,好像是提示太多文件什么的(具体忘了),肿么办?我退出到 /var/log/exim4 目录,直接 rm -rf input 才干掉!然后建立回 input 目录,并且重新把所属者改为 Debian-exim,Orz……(所以解决方法就是直接把 input 目录里面的文件全部 rm 掉)

3. 如果重新启动 exim4 提示错误

ALERT: exim paniclog /var/log/exim4/paniclog has non-zero size, mail system possibly broken ... failed!

打开 /var/log/exim4/paniclog 文件把里面的内容清空即可。

大量待发邮件的始作俑者

我进入 ashun 的 WP 博客后台,经过不断排查,最后确定是 willin 的老插件 my-visitors 造成的大量邮件发送而因为 -51 错误导致生产大量待发邮件。

我后来又这样测试了肯定了是此插件问题导致:只要一开启此插件,前面所说的 input 目录就会不断增加待发邮件!当然,不代表还在用此插件的朋友就一定会发生这种情况,毕竟服务器环境和使用方式的不同,而我没去分析插件全部代码——毕竟作者 willin 早已经抛弃 WordPress 了。

所以,作者停止开发的插件还是不要用了,毕竟 WordPress 还在不断更新!你看 3.7 才几天就 3.7.1 了。

zww
or
oooo

“老 WordPress 插件生成大量待发邮件导致服务器高负载”有38条评论

  1. 来一发

  2. 再来一发

  3. 国际惯例 3楼完毕

    1. axiu says:

      @zwwooooo
      不错,有我的风范

  4. 莫法邪 says:

    说起来我以前也碰到过 My-visitors 插件导致的网站超卡的情况,当时只是一个个插件禁用过去,发现只要禁用掉这个插件,网站就会恢复正常,之后倒是没有分析详细原因~

    1. zwwooooo says:

      @莫法邪
      所以不更新的老插件还是别用了

    2. zwwooooo says:

      小邪,你这网址是啥,访问不了的 - -

    3. 莫法邪 says:

      @zwwooooo
      刚刚决定放新blog的地址 =w=
      因为是刚刚决定,所以里面神马都木有 >w<

    4. zwwooooo says:

      @莫法邪
      你的博客“浮浮沉沉”……

    5. 莫法邪 says:

      @zwwooooo
      > < 希望是最后一次

  5. 廖俊媛 says:

    四楼接这来一发,,,博主搞主机的。。。价格怎么样啊

    1. zwwooooo says:

      @廖俊媛
      我不是搞主机的,只是几个熟识的朋友的博客放在我的服务器而已。

  6. 郑永 says:

    这种情况要是我遇到,还真不会发现。我的问题也只能空间商他们去琢磨了。

    1. zwwooooo says:

      @郑永
      VPS 有问题,空间商不会为你调试的……

  7. Alex Gao says:

    基本在文囧月经以上状态 :arrow:

    1. zwwooooo says:

      @Alex Gao
      别绝经就行了 :mrgreen:

  8. yxiao says:

    不明觉厉。

    1. zwwooooo says:

      @yxiao
      折腾一下就知道点了

  9. 大发 says:

    大量发邮件这事我也遇到过,后来好几个G老502,囧。于是我就放弃sendmail配置的postfix。

    1. zwwooooo says:

      @大发
      这跟用啥服务没什么关系吧,主要是那个插件问题

  10. 灰狼 says:

    非WP用户表示路过

  11. jack says:

    老曾总是折腾无穷乐

  12. W3Cshare says:

    好恐怖 :arrow:

  13. kn007 says:

    让我想起了大发那煞笔。。。。

  14. wmtimes says:

    我站里估计也不少。

  15. Yusky says:

    :mrgreen: 貌似在hostloc上听说有这个情况导致服务商直接把账户给暂停了.是这同样的情况 :grin:

    1. zwwooooo says:

      @Yusky
      应该是吧,毕竟负载太高

  16. Derek says:

    我这边的博客版本要不要升级啊 :mrgreen: 会不会有问题啊?

    1. zwwooooo says:

      @Derek
      不升级完全没问题,升级就不知道了,起码ashun升级时他的wp就挂了一下…折腾了我1个小时…

  17. countmeon says:

    我编译lamp都不用mail,越多越事多

  18. 门软网 says:

    还没注意到这个问题过,表示用LNMP都没配置成功过sentmail

    1. zwwooooo says:

      @门软网
      囧,这个一般情况下默认不就装好了么。。。

  19. 小笨龙 says:

    都是高科技,看不懂 :sad:

  20. 0.46 0.23 0.19 4/95 :mrgreen: 12月份到期,正好阿里云有活动,到时候把这个vps变成两个买。

    1. zwwooooo says:

      @平板盒子
      备案烦,不然我也用

发表评论

昵称 *

网址

B em del U Link Code Quote