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) |
表 3 Instant Messaging 用に定義されているスレッドプール
名前 |
用途 |
---|---|
s2s-in |
すべてのサーバー間インバウンド通信。ポートがサーバー間通信を許可する場合には、このスレッドプールが使用されます。 |
s2s-out |
すべてのサーバー間アウトバウンド通信。ポートがサーバー間通信を許可する場合には、このスレッドプールが使用されます。 |
s2s |
すべてのサーバー間通信、つまり s2s-in と s2s-out の和集合。 |
「サービスポートの設定」 で説明されている手順にしたがって、定義したスレッドプールを関連付けられたサーバー専用のサービスポートで使用するよう指定することができます。
スレッドプールの容量を超えると、メッセージが標準エラーに出力されます。Instant Messaging サーバーは、要求の数がスレッドプール容量の値より少なくなるまで、スレッドプールに対する追加要求を受け入れません。この状況がサーバープール環境で発生した場合には、次の操作が必要となる可能性があります。
スレッドプールの容量を増やす
定義したスレッドプールを指定する
スレッドプールの maxthreads の数を調整する
サーバー専用のサービスポートを使用する
メモリーを増やすことが必要となる場合もある
サーバープール内でユーザーをより効率的に分散させる
!s2s thread pool iim_server.threadpool=s2s-in iim_server.threadpool.s2s-in.maxthreads=5 |