amavisd-新进程“堵塞”

amavisd-新进程“堵塞”

我有一个基于以下描述的邮件过滤系统: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) 请求在 20 个任务后停止进程”似乎发生在进程在“(接受)”状态冻结之前。
  • 这发生在我们两个(几乎相同的)邮件过滤器上,同时开始(大约在下面提到的 libaprutil1 升级时)

我自己还没有发现太多问题,想知道这里是否有人遇到了同样的问题?

有人能给我指出正确的方向吗?

答案1

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 版本。

答案2

我想我找到了解决方案:

本质上,pyzor 服务器 IP 地址已更改pyzor ping。可以通过运行和su amavis -c 'pyzor ping'获取每个的超时来确认这一点。

可以通过运行并设置定期的 cron 作业来运行此命令来解决这个问题pyzor discover; su amavis -c 'pyzor discover'(以防将来再次发生变化)

自从我做了这个改变之后,amavisd 就不再“干扰”我了。

相关内容