Instant Messaging をサーバープールが設定されている環境に配備するときの調整とパフォーマンス、およびガベージコレクションの最適化に役立つ情報を、次の節で説明します。
これらの情報は、『Sun Java Communications Suite 5 配備計画ガイド』と併せて参照してください。
サーバープールの配備では、サーバープール内の各 Instant Messaging サーバーをそれぞれ同じようにセットアップする必要があります。
Instant Messaging サーバーの実行には、パフォーマンスに優れ、人間工学機能のサポートによりコマンド行による調整を必要としない J2SE version 5 を使用してください。このバージョンの Java の使用に関する詳細については、次の文書を参照してください。
Instant Messaging サーバーは、iim.conf の iim.jvm.maxmemorysize パラメータを使用して、割り当てる JVM ヒープの最大サイズを設定します。このパラメータのデフォルト値は 256M バイトですが、Instant Messaging のアクティブな大容量配備ではそれ以上のメモリーが必要になります。サーバープール内の Instant Messaging サーバーに割り当てるメモリーの容量は、サポートが必要となる並行アクティブユーザーの数によって異なります。サーバープール内の各 Instant Messaging サーバーに 256M バイトが必要となることに加えて、接続/アクティブ状態の各ユーザーが次のような操作を毎日実行する場合には、個々のユーザーにさらに 65K バイトが必要となります。
Presence 更新を 2 回
10 分間のチャットを 5 回
15 分間のマルチユーザー会議室を 1 回
ログアウトとログインを 1 回
ニュースやファイル転送といった Instant Messaging の追加サービスを使用したり、メッセージフィルタ、アーカイブ、SSL などの機能を使用したりすることによりユーザーの作業負荷が増える場合には、消費するメモリーがさらに増えます。Instant Messaging を本稼働環境に配備する前に、標準的なユーザー活動のロードプロファイリングを行うようにしてください。Instant Messaging 配備のロードプロファイリングの詳細については、Sun サポートサービスにお問い合わせください。
Instant Messaging には、クライアントとサーバー間、およびサーバーとサーバー間での要求の受け渡しに使用するスレッドプールのサイズと動作を調整する、一連の設定オプションが備わっています。これらのスレッドプールと関連付けられたサービスポートとを組み合わせることで、Instant Messaging サーバーのスループットを向上させることができます。
オプション名 |
説明 |
デフォルト値 |
---|---|---|
iim_server.maxthreads |
デフォルトスレッドプールの最大スレッド数。 |
20 |
iim_server.threadpool |
個々のスレッドプールのリスト。 |
(すべてがデフォルトスレッドプールを使用する。) |
iim_server.threadpool.capacity |
デフォルトスレッドプールの容量 (*)。 |
10 * maxthreads |
iim_server.threadpool.aaa.maxthreads |
指定したスレッドプール aaa の最大スレッド数: maxthreads(aaa) |
4 |
iim_server.threadpool.aaa.capacity |
指定したスレッドプール aaa の容量。 |
10 * maxthreads(aaa) |
表 4–4 Sun Java Communications Suite 用に定義されているスレッドプール
名前 |
用途 |
---|---|
s2s-in |
すべてのサーバー間インバウンド通信。ポートがサーバー間通信を許可する場合には、このスレッドプールが使用されます。 |
s2s-out |
すべてのサーバー間アウトバウンド通信。ポートがサーバー間通信を許可する場合には、このスレッドプールが使用されます。 |
s2s |
すべてのサーバー間通信、つまり s2s-in と s2s-out の和集合。 |
「サービスポートの設定」で説明されている手順に従って、定義したスレッドプールを関連付けられたサーバー専用のサービスポートで使用するよう指定することができます。スレッドとポートの設定は iim.conf で編集します。スレッドとポートの設定の変更後、サーバーを再起動する必要があります。
スレッドプールの容量を超えると、メッセージが標準エラーに出力されます。Instant Messaging サーバーは、要求の数がスレッドプール容量の値より少なくなるまで、スレッドプールに対する追加要求を受け入れません。この状況がサーバープール環境で発生した場合には、次の操作が必要となる可能性があります。
スレッドプールの容量を増やす
定義したスレッドプールを指定する
スレッドプールの maxthreads の数を調整する
サーバー専用のサービスポートを使用する
メモリーを増やすことが必要となる場合もある
サーバープール内でユーザーをより効率的に分散させる
!s2s thread pool iim_server.threadpool=s2s-in iim_server.threadpool.s2s-in.maxthreads=5 |
サービスポートにはいくつもの設定オプションがあります。この節では、それらのオプションについて説明します。
オプション |
定義 |
デフォルト値 |
---|---|---|
iim_server.useport |
標準ポートを開く (StartTLS で可能) |
true |
iim_server.usesslport |
SSL ポートを開く (折衝不能 TLS) |
false |
iim_server.usemuxport |
マルチプレクサポートを開く |
true |
iim_server.port |
標準ポートのリスト |
5269 |
iim_server.sslport |
SSL ポートのリスト |
5270 |
iim_mux.serverport |
マルチプレクサポートのリスト |
45222 |
iim_server.port.port.sndbuf |
ソケット send バッファーサイズ |
なし |
iim_server.port.port.rcvbuf |
ソケット recv バッファーサイズ |
なし |
iim_server.port.port.interface |
バインド先の個別ネットワークインターフェースのリスト |
なし (任意) |
iim_server.port.port.protocol |
このポート (クライアント、サーバー、コンポーネント、ピア) で許可されているプロトコルのリスト |
all/any |
iim_server.port.port.nodelay |
Nagles アルゴリズムを有効にする |
false |
サービスポートのスループットは、ポートの送信または受信バッファーサイズを調整することによって向上する場合があります。
iim_server.port = 5269, 45269, 15222 iim_server.port.5269.protocol = server iim_server.port.45269.protocol = peer, component iim_server.port.45269.sndbuf= 512000 iim_server.port.45269.recvbuf= 512000 iim_server.port.15222.protocol = client |
(問題番号: 6279277) JRE の version 1.4.2 と 1.5 でガベージコレクションの処理方法が異なるため、サーバーのホストで version 1.4.2 のデフォルトガベージコレクションを使用した場合に、最適なパフォーマンスが得られない場合がある。この状況を修正するため、JRE のバージョンを 1.5 にアップグレードするか、サーバー起動時に次のコマンド行オプションを組み込むことができます。
-XX:+UseParallelGC |
JRE ガベージコレクションの詳細については、次を参照してください。