一例qmail外发邮件慢的解决方法

照以往案例,首先检查dns,服务器上nslookup后,一切正常。

 

查看下qmail当前队列状态,

qmailctl queue|more

出现如下信息

messages in queue but not yet preprocessed: 51,观察了一段时间,这个值一直将不下来,说明qmail-send运行异常

 

跟踪当前日志,

tail -f /var/log/qmail/current |tai64nlocal 

有不少类似“warning: unable to stat mess/15/3629875” 的消息出现,这些队列任务应该已经损坏了,qmail-fix的动作太大,可以直接动手删除,注意先停止qmail服务

  

qmailctl stop

 

find /var/qmail/queue/ -name  队列ID  | xargs rm -f

因为损坏队列比较多,通过脚本执行

more /var/log/qmail/current |tai64nlocal |grep -e "^2011-05-12 23:10:23" |grep "warning: unable to stat mess" | awk '{ print $7}'|sed -e 's/mess\/[0-9]\+\///' > /var/work/badQueueId.log

    上面是从current日志中,找出最新的损坏队列id号,新建clearNotPreProcess.sh如下

   

#!/bin/sh
#clearNotPreProcess.sh
warnlogfile="/var/work/badQueueId.log"
for line in `cat $warnlogfile`;
do
 find /var/qmail/queue/ -name $line | xargs rm -f;
done;

   执行./clearNotPreProcess.sh 批量删除

   

    开启qmail服务

   

qmailctl start     

 

再看看qmail运行状态

  

qmailctl stat

    messages in queue but not yet preprocessed: 0

 

凡事都有但是,发件仍然很慢,睁大眼睛看current日志

    status: local 0/30 remote 39/40  ,并发数接近用满

调整并发参数,将 /var/qmail/control/concurrencyremote 的数值调到190,重启qmail,问题解决。

 

小注意点:qmail在队列繁忙时,经常不能一下停掉,多试几次,耐心等待,尽量避免去强杀qmail-remote进程

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值