主题: Amavis扫描效率问题

==== 必填信息。没有填写将不予回复 ====
- iRedMail 版本: 0.8.1
- 使用的 Linux/BSD 发行版名称及版本号: CentOS 6.2
- 与您的问题相关的日志信息:
====
Sep 14 16:02:14 mail amavis[1684]: (01684-01) Passed CLEAN, MYNETS/MYUSERS LOCAL [192.168.2.119] [192.168.2.119] <www@xxx.com> -> <www@xxx.com>, Message-ID: <201209141603109680018@xxx.com>, mail_id: Gmfg86seIHcg, Hits: -9.998, size: 1689, queued_as: BAD94100C2E, 21191 ms

最近在测试iRedmail,一直有个问题困扰我:
一个size为1689 byte的mail 被Amavis扫描了21191ms,这让我情何以堪.....

开发组可否帮忙,有何优化设置?

回复: Amavis扫描效率问题

- 所有邮件的扫描都需要很长时间?还是仅仅这一封?
- 邮件服务器是否繁忙?
- Postfix 队列里邮件多么?

回复: Amavis扫描效率问题

目前只是测试,只有此一封邮件,也只有www这个account。

应该跟硬件的问题也无关,server的硬件够用。

回复: Amavis扫描效率问题

Sep 14 17:42:29 mail amavis[1684]: (01684-02) Passed CLEAN, MYNETS/MYUSERS LOCAL [192.168.2.119] [192.168.2.119] <www@xxx.com> -> <www@xxx.com>, Message-ID: <2012091417435226234010@xxx.com>, mail_id: jl332unpP88d, Hits: -9.999, size: 8969, queued_as: 0EF4C100C72, 20838 ms

Sep 14 17:42:00 mail amavis[1685]: (01685-01) Passed CLEAN, MYNETS/MYUSERS LOCAL [192.168.2.119] [192.168.2.119] <www@xxx.com> -> <www@xxx.com>, Message-ID: <201209141743239425909@xxx.com>, mail_id: LQZXtuq66WSW, Hits: -9.999, size: 5316, queued_as: DE5A8100C45, 20859 ms

补充解释一下,这个www@xxx.com发给自己的,我测试了4封邮件,都是发送的小文本测试,但扫描时间都要20秒以上。
Postfix的队列里只有我这些测试邮件而已。

回复: Amavis扫描效率问题

我同樣遇到差不多的問題, 掃瞄時間很長,

把 amavis 由 2 改 4 都無效

最後 E-Mail Queue 很長, 形成E-Mail 的收發延時  -___-

回复: Amavis扫描效率问题

请问各位的硬件是什么情况?我在 VMware 虚拟机里都比这快得多。

回复: Amavis扫描效率问题

我也有同样的情况,特别是群发邮件的时候,例如通知带附件之类的(60个用户),有时候需要60分钟,而且这个时候段,整个postfix 队列暴满,一度认为是freebsd的IO性能差,以前也有发个贴,请教张工,后面只能让通过smtp验证的用户,不经过扫描才得以暂时解决。




ZhangHuangbin 写道:

请问各位的硬件是什么情况?我在 VMware 虚拟机里都比这快得多。

8 最后由 hondsam (2012-09-17 12:16:04) 编辑

回复: Amavis扫描效率问题

ZhangHuangbin 写道:

请问各位的硬件是什么情况?我在 VMware 虚拟机里都比这快得多。

我也是VM环境:
1G Ram,20G HDD,X3065 1Core,CentOS6.2-X86 Version
数据库是采用Mysql的

如果关掉Amavis扫描,速度就立即起来了
如果需要提供何种日志或者记录,请尽管吩咐。

回复: Amavis扫描效率问题

ZhangHuangbin 写道:

- 所有邮件的扫描都需要很长时间?还是仅仅这一封?
- 邮件服务器是否繁忙?
- Postfix 队列里邮件多么?

我是真實的服務器來, 行 Intel Core 2 Duo E7500
內存: 8G, 硬盤: Software RAID 1
BackEnd 是 MySQL
OS: Centos6.3
平均 100 人左右在使用
队列里有 3xx 左右郵件
平均掃瞄1電郵時間超過 1 分鐘

回复: Amavis扫描效率问题

比较奇怪的是,英文论坛里没有用户反馈这个问题,而且自 07 年以来都没有这样的反馈。我还不是很确定到底是个别情况,还是所有用户都有这样的问题。抱歉。

大家可以尝试这样的临时解决方案:对外发的邮件不做 spam 和病毒扫描。具体的做法是:

- 在 /etc/amavisd/amavisd.conf (因为 Linux 发行版和版本的不同,配置文件位置可能有所不同),找到以下一段:

$policy_bank{'MYUSERS'} = {
    ...
    # don't perform spam/virus/header check.
    #bypass_spam_checks_maps => [1],
    #bypass_virus_checks_maps => [1],
    #bypass_header_checks_maps => [1],

    # allow sending any file names and types
    #bypass_banned_checks_maps => [1],
};

- 将这里的几个 bypass_ 参数的注释符号都去掉。去掉后看起来像下面这样:

$policy_bank{'MYUSERS'} = {
    ...
    # don't perform spam/virus/header check.
    bypass_spam_checks_maps => [1],
    bypass_virus_checks_maps => [1],
    bypass_header_checks_maps => [1],

    # allow sending any file names and types
    bypass_banned_checks_maps => [1],
};

修改完后请重启 Amavisd 服务。

如果仍存在同样的问题,请大家继续在这个帖子里回复。

回复: Amavis扫描效率问题

Sep 18 12:04:18 mail amavis[8303]: (08303-01) Passed CLEAN, MYNETS/MYUSERS LOCAL [192.168.2.119] [192.168.2.119] <www@xxx.com> -> <www@xxx.com>, Message-ID: <201209181206055782410@xxx.com>, mail_id: MZri7Hnjqf4m, Hits: -, size: 1735, queued_as: 79B58100CCC, 168 ms

明显改善,扫描邮件用了168ms,不过关闭检查会不会造成不安全~?

回复: Amavis扫描效率问题

上一个帖子里给出的是对外发的邮件不做检测。
从技术角度来说,任何收发的邮件都可能是 spam/virus。但从情理上说,你自己公司内部的用户应该不会故意发 spam 和病毒邮件吧?所以我个人认为这样的风险还是可以承受的。至于你和你的公司是否能接受就得看是否有这方面的内部政策或规定了。

13 最后由 hondsam (2012-09-18 17:49:36) 编辑

回复: Amavis扫描效率问题

我用排除法对比了一下,问题应该在spam的check上,如果注释掉:

 bypass_spam_checks_maps => [1]

扫描的时间就会延长到20秒左右。

关掉spam的check,速度就马上起来了,只有168ms左右。

回复: Amavis扫描效率问题

hondsam 写道:

关掉spam的check,速度就马上起来了,只有168ms左右。

SpamAssassin 是基于 content 的扫描,它会读 header/body,并且有一堆的 rules,所以性能上肯定相对慢一些。

另外一个可以尝试的是:保留 spamassassin,但只检测比指定数值小的邮件。参考 Amavisd 设置:

The $sa_mail_body_size_limit sets a limit on a mail size beyond which SpamAssassin is not called, so it can not contribute to memory usage much beyond this limit, times a small factor (2-5?, due to multiple internal representations of a message). If the $sa_mail_body_size_limit is large, and MTA mail size is not limited, or if mail has a huge mail header, the memory footprint can become noticable. For the rest of a lifetime the child process that processed the mail stays at its high virtual memory size. If this happens frequently, host resources may become scarce. Limiting the number of tasks is very much desirable in this case.

回复: Amavis扫描效率问题

$sa_mail_body_size_limit

我看到这个参数设置的为400*1024,默认扫描400K以下的mail,应该无害的。
因为我测试中发出的mail只有1k不到。我想跟这个参数的关系应该不大。

回复: Amavis扫描效率问题

效能明顯改善, 不過我是在

bypass_virus_checks_maps => [1],

時問題才得到改善 = , =-


ZhangHuangbin 写道:

比较奇怪的是,英文论坛里没有用户反馈这个问题,而且自 07 年以来都没有这样的反馈。我还不是很确定到底是个别情况,还是所有用户都有这样的问题。抱歉。

大家可以尝试这样的临时解决方案:对外发的邮件不做 spam 和病毒扫描。具体的做法是:

- 在 /etc/amavisd/amavisd.conf (因为 Linux 发行版和版本的不同,配置文件位置可能有所不同),找到以下一段:

$policy_bank{'MYUSERS'} = {
    ...
    # don't perform spam/virus/header check.
    #bypass_spam_checks_maps => [1],
    #bypass_virus_checks_maps => [1],
    #bypass_header_checks_maps => [1],

    # allow sending any file names and types
    #bypass_banned_checks_maps => [1],
};

- 将这里的几个 bypass_ 参数的注释符号都去掉。去掉后看起来像下面这样:

$policy_bank{'MYUSERS'} = {
    ...
    # don't perform spam/virus/header check.
    bypass_spam_checks_maps => [1],
    bypass_virus_checks_maps => [1],
    bypass_header_checks_maps => [1],

    # allow sending any file names and types
    bypass_banned_checks_maps => [1],
};

修改完后请重启 Amavisd 服务。

如果仍存在同样的问题,请大家继续在这个帖子里回复。

回复: Amavis扫描效率问题

lwydata 写道:

效能明顯改善, 不過我是在
bypass_virus_checks_maps => [1],
時問題才得到改善 = , =-

这么说是 virus scanning 时比较慢,而不是 SpamAssassin 的 spam scanning。

回复: Amavis扫描效率问题

ZhangHuangbin 写道:

这么说是 virus scanning 时比较慢,而不是 SpamAssassin 的 spam scanning。

可能每台机的情况都不一样,我测试的是SpamAssassin的Scanning比较慢

另外

ZhangHuangbin 写道:

$policy_bank{'MYUSERS'} = { ... # don't perform spam/virus/header check. bypass_spam_checks_maps => [1], bypass_virus_checks_maps => [1], bypass_header_checks_maps => [1], # allow sending any file names and types bypass_banned_checks_maps => [1], };

这样只是从本网外发的邮件会有改善。
但是收信数目比较多的话,依然会被Coming的队列塞死。

19 最后由 luwanming (2012-10-10 18:08:05) 编辑

回复: Amavis扫描效率问题

我找不到amavisd.conf
安装的iredmail0.8.2及ubuntu12.04.能找到anavis,但是找不到anavisd.conf

ZhangHuangbin 写道:
lwydata 写道:

效能明顯改善, 不過我是在
bypass_virus_checks_maps => [1],
時問題才得到改善 = , =-

这么说是 virus scanning 时比较慢,而不是 SpamAssassin 的 spam scanning。

回复: Amavis扫描效率问题

Ubuntu 系统里 Amavisd 的配置文件都在 /etc/amavis/conf.d/ 目录下,用户一般只配置 50-user 这个文件。

回复: Amavis扫描效率问题

我有两台邮件系统邮件队列经常特别大,用户都在1000人以上,一个版本是0.8.0,另一个是0.8.1,服务器都是IBM 3650M3服务器,双CPU,16G内存的,以前按照下面的方法修改后,效果比较明显,当现在0.8.0还是经常出现邮件队列超过300以上的情况,投递时间比较长,出现超过40分钟邮件还在队列中,0.8.1相对没这么严重。谢谢。

$policy_bank{'MYUSERS'} = {
    ...
    # don't perform spam/virus/header check.
    bypass_spam_checks_maps => [1],
    bypass_virus_checks_maps => [1],
    bypass_header_checks_maps => [1],

    # allow sending any file names and types
    bypass_banned_checks_maps => [1],
};

回复: Amavis扫描效率问题

得实际分析自己服务器上具体是什么问题引起的,spam/virus 扫描虽然很占资源,但既然禁用后情况依旧,就应该尝试看看其它可能性。

回复: Amavis扫描效率问题

张工,你好!我想请问一下除了spam/virus 扫描会使邮件队列比较大以外还有哪些设置或者参数可能也会影响邮件收发效率啊,谢谢!