Sun Java System Messaging Server 6 2005Q4 管理ガイド

Procedure着信 SMTP 接続時のタイムアウトの原因を識別するには

手順
  1. 同時に許可する着信 SMTP 接続の数をチェックします。これは SMTP サービスのディスパッチャー設定である MAX_PROCS および MAX_CONNS によって制御され、許可できる同時接続数は MAX_PROCS*MAX_CONNS です。接続数が少なすぎる場合、システムリソースに余裕があれば、この数を増やすことを考慮してください。

  2. 使用できるもう 1 つの方法は、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]

    /etc/nsswitch.conf ファイルでこのような変更を行うと、複数の SMTP サーバーで不要な検索を実行する必要がなく、少数の SMTP サーバーでメッセージを処理するため、パフォーマンスを向上させることができます。

  4. 着信 SMTP over TCP/IP メールを処理しているチャネル (通常は、tcp_localtcp_intranet) 上に slave_debug キーワードを設定することもできます。これを実行したあと、最新の tcp_local_slave.log-uniqueid ファイルを見直して、タイムアウトになったメッセージの特性を識別します。たとえば、受取人の数が多すぎる着信メッセージがタイムアウトになった場合は、チャネル上で expandlimit キーワードを使用することを考慮してください。

    システムが過負荷になっていて拡張されすぎている場合は、タイムアウトを完全に回避するのは難しくなります。