我有一个基于以下描述的邮件过滤器系统:http : //www200.pair.com/mecham/spam/(Debian Lenny,postfix / amavisd-new / spamassassin / policy-weightd 等)
在过去的几年里,这个系统对我们来说一直运行完美(首先在 Etch 上,然后在 Lenny 发布后重新构建)
然后在过去一周,amavisd-new 进程一直以这样的方式锁定:
- 仍然有 amavid 进程在运行——所有进程都标有“(accept)”而不是“(avail)”
- 我仍然可以与 amavis 端口建立 telnet 连接,但它坐在那里连接没有响应
- 运行 amavisd-nanny 会锁定我的 ssh 会话,我必须中止并开始一个新的 ssh 会话。
- 奇怪的日志条目“amavis[25474]: (25474-20) Requesting process rundown after 20 tasks”似乎发生在进程冻结在“(接受)”状态之前。
- 这已经发生在我们的两个(几乎相同的)邮件过滤器上,同时开始(大约在下面提到的 libaprutil1 升级时间)
我自己无法发现很多东西,我想知道这里是否有人面临同样的事情?
有人能指出我正确的方向吗?
amavisd-new 的“较新”版本将随着时间的推移而逐渐消失。我大约每5-6个月遇到一次。我没有直接追踪这个问题,但它似乎是 RHEL/CentOS 附带的 perl 安装问题(这是我正在运行的)。
我可以告诉你,你会想要将孩子的生命周期调整很多,比如每次运行 10-30 次,因为这似乎可以缓解最糟糕的情况。垃圾邮件风暴似乎也可能导致该过程有点悲伤,并且在重负载下会导致一些孩子死亡。
我希望我能告诉你更多,但这就是我所拥有的。哦,您是从 CPAN 更新模块吗?在 Debian 上,我相信这可以正常工作,但在 RHEL/CentOS 上,这已经记录了一段时间,引起了各种各样的悲痛。如果一切都失败了,请在 CPAN 中更新最新版本的 spamassassin,这在过去也缓解了一些问题。
更新:
官方页面提到了几个问题,包括 Net::Server 和更新版本之间的一些不兼容。由于我没有任何版本号可供参考,我建议您 (a) 从 rpm -q 获取您正在使用的 amavis 版本 (b) 使用 CPAN 来确定您正在运行的 Net::Server 版本。
我想我找到了解决方案:
本质上,pyzor 服务器 IP 地址已更改。这可以通过运行
pyzor ping
和su amavis -c 'pyzor ping'
获取每个超时来确认。这可以通过运行来解决这个问题
pyzor discover; su amavis -c 'pyzor discover'
,并设置一个常规的 cron 作业来运行这个命令(以防它在将来再次改变)自从我做出这个改变后,amavisd 就不再“干扰”我了。