Sun Java System Messaging Server 6.3 管理指南

26.3.5 內送 SMTP 連線逾時

內送 SMTP 連線逾時通常與系統資源及其配置有關。以下技術可用於識別內送 SMTP 連線的逾時原因:

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 大標題的回應時間較長,且正在執行 pstack 指令,則在 SMTP 伺服器上會顯示以下 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]

    /etc/nsswitch.conf 檔案中進行此變更可提昇效能,因為只有少數 SMTP 伺服器必須處理郵件,而多數 SMTP 伺服器不必執行不必要的查詢。

  4. 您還可以將 slave_debug 關鍵字置於經由 TCP/IP 郵件 (通常為 tcp_localtcp_intranet) 處理內送 SMTP 的通道上。執行此作業之後,檢查最近的 tcp_local_slave.log-uniqueid 檔案,以識別逾時郵件的所有特定特徵。例如,如果具有眾多收件者的內送郵件逾時,請考量在此通道上使用 expandlimit 關鍵字。

    請記住,如果您的系統超載並且過分延伸,則逾時將難以完全避免。