Sun Java Communications Suite 5 リリースノート

Instant Messaging のパフォーマンス、スケーラビリティー、およびサイズ決定に関する検討事項

Instant Messaging をサーバープールが設定されている環境に配備するときの調整とパフォーマンス、およびガベージコレクションの最適化に役立つ情報を、次の節で説明します。

これらの情報は、『Sun Java Communications Suite 5 配備計画ガイド』と併せて参照してください。


注意 – 注意 –

サーバープールの配備では、サーバープール内の各 Instant Messaging サーバーをそれぞれ同じようにセットアップする必要があります。


Instant Messaging サーバーメモリーの調整

Instant Messaging サーバーの実行には、パフォーマンスに優れ、人間工学機能のサポートによりコマンド行による調整を必要としない J2SE version 5 を使用してください。このバージョンの Java の使用に関する詳細については、次の文書を参照してください。

Instant Messaging サーバーは、iim.confiim.jvm.maxmemorysize パラメータを使用して、割り当てる JVM ヒープの最大サイズを設定します。このパラメータのデフォルト値は 256M バイトですが、Instant Messaging のアクティブな大容量配備ではそれ以上のメモリーが必要になります。サーバープール内の Instant Messaging サーバーに割り当てるメモリーの容量は、サポートが必要となる並行アクティブユーザーの数によって異なります。サーバープール内の各 Instant Messaging サーバーに 256M バイトが必要となることに加えて、接続/アクティブ状態の各ユーザーが次のような操作を毎日実行する場合には、個々のユーザーにさらに 65K バイトが必要となります。

ニュースやファイル転送といった Instant Messaging の追加サービスを使用したり、メッセージフィルタ、アーカイブ、SSL などの機能を使用したりすることによりユーザーの作業負荷が増える場合には、消費するメモリーがさらに増えます。Instant Messaging を本稼働環境に配備する前に、標準的なユーザー活動のロードプロファイリングを行うようにしてください。Instant Messaging 配備のロードプロファイリングの詳細については、Sun サポートサービスにお問い合わせください。

Instant Messaging のスレッドプールおよびサービスポートの設定

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)

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 サーバーは、要求の数がスレッドプール容量の値より少なくなるまで、スレッドプールに対する追加要求を受け入れません。この状況がサーバープール環境で発生した場合には、次の操作が必要となる可能性があります。


例 4–1 定義したスレッドプールを使用して、Instant Messaging のサーバー間インバウンド通信用に 5 つのスレッドを予約する


!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 

サービスポートのスループットは、ポートの送信または受信バッファーサイズを調整することによって向上する場合があります。


例 4–2 Instant Messaging 用のサービスポートの設定


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 

Instant Messaging 用のガベージコレクションの調整

(問題番号: 6279277) JRE の version 1.4.2 と 1.5 でガベージコレクションの処理方法が異なるため、サーバーのホストで version 1.4.2 のデフォルトガベージコレクションを使用した場合に、最適なパフォーマンスが得られない場合がある。この状況を修正するため、JRE のバージョンを 1.5 にアップグレードするか、サーバー起動時に次のコマンド行オプションを組み込むことができます。


-XX:+UseParallelGC

JRE ガベージコレクションの詳細については、次を参照してください。