Sun Java System Messaging Server 6 2005Q4 管理指南

Procedure识别造成外来 SMTP 连接超时的原因

步骤
  1. 检查您允许同时进行多少个外来 SMTP 连接。这将由 SMTP 服务的 MAX_PROCSMAX_CONNS 分发程序设置控制;允许同时进行的连接数量是 MAX_PROCS*MAX_CONNS。如果您可以提供系统资源,而连接数量太少不能满足使用要求,可以考虑增加此数量。

  2. 可以使用的另一个技巧是打开 TELNET 会话。

    在以下示例中,用户连接到 127.0.0.1 端口 25,连接后,将返回 220 标题。例如:


    telnet 127.0.0.1 25
    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    Escape character is ’^]’.
    220 budgie.sesta.com --Server ESMTP (Sun Java System Messaging Server 6.1 
    (built May  7 2001))

    如果已连接并且收到 220 标题,但是其他命令(如 ehlomail from)没有违反响应,则应运行 imsimta test -rewrite 以确保配置正确。

  3. 如果 220 标题的响应时间较慢,并且在 SMTP 服务器上运行 pstack 命令时显示以下 iii_res* 函数(这些函数表示正在执行名称解析查找):


    febe2c04 iii_res_send (fb7f4564, 28, fb7f4de0, 400, fb7f458c, fb7f4564) + 
    42c febdfdcc iii_res_query (0, fb7f4564, c, fb7f4de0, 400, 7f) + 254

    则可能是主机必须进行反向名称解析查找,即使对于普通对(如 localhost/127.0.0.1)。要防止此类性能降低,应该在 /etc/nsswitch.conf 文件中对主机的查找重新排序。要执行此操作,请将 /etc/nsswitch.conf 文件中的以下行从:


    hosts: dns nis [NOTFOUND=return] files

    更改为:


    hosts: files dns nis [NOTFOUND=return]

    由于只有少数 SMTP 服务器必须处理邮件,而不是多数 SMTP 服务器必须执行不必要的查找,因此在 /etc/nsswitch.conf 文件中进行此更改可以提高性能。

  4. 您还可以通过 TCP/IP 邮件(通常为 tcp_localtcp_intranet)将 slave_debug 关键字放在处理外来 SMTP 的通道中。完成此操作后,请查阅最近的 tcp_local_slave.log-uniqueid 文件以识别超时邮件的所有特征。例如,如果具有大量收件人的外来邮件超时,请考虑在通道中使用 expandlimit 关键字。

    请记住,如果您的系统过载和过分扩展,则很难完全避免超时。