2.4.8 負荷分散機能

XTCには,送信用ポート,受信用ポート,および通信回線に対する負荷を分散するための負荷分散機能があります。ここでは,XTCの負荷分散機能について説明します。

<この項の構成>
(1) 送信用ポートの共有と占有
(2) 受信用ポート(あて先ポート)の分散

(1) 送信用ポートの共有と占有

送信用ポート数が少ない場合,送信用ポートをスレッド間で共有します。送信用ポートを共有した場合に,スレッド間で送信処理が競合したときは,送信用ポートの空き待ちを行います。そのため,競合するスレッド数が増えるほど,空き待ち時間が長くなります。

一方,送信用ポート数が多い場合は,送信用ポートをスレッドが占有します。この場合,スレッド間での待ち時間は発生しません。

送信用ポートの共有または占有は,次の表に示す規則で決定します。なお,送信UDPグループごとに,このルールが適用されます。そのため,例えば,送信UDPグループAは共有,送信UDPグループBは占有という構成も考えられます。

表2-13 送信用ポートの共有または占有を決定するためのルール

項番条件結果
1送信用ポート数 ≧ メインスレッドを除いたスレッド数すべてのスレッドは占有
2送信用ポート数 > 処理スレッド数+送信スレッド数処理スレッド,および送信スレッドは占有,それ以外のスレッドは共有
3項番1および項番2以外の場合すべてのスレッドは共有

(2) 受信用ポート(あて先ポート)の分散

受信UDPグループに複数のポート番号を指定した場合,複数のUDP受信スレッドが同時に受信処理を行うことで,負荷分散を行います。

あて先UDPグループにポート番号が複数指定されている場合,送信元プロセスは,あて先ポート番号をランダムに選択します。