20.3. ネットワークスイッチでのバッファリングを減らすことで Sun Ray クライアントのパフォーマンスを向上させる方法 (Oracle Solaris)

ネットワークスイッチの中には、サーバー側接続が 1 Gbps で動作するように構成すると、Sun Ray クライアントで適切に動作しなくなるものがあります。Sun Ray クライアントは 100 Mbps で動作し、データは X ウィンドウサーバーから周期的バーストで送信されるため、これらのスイッチでは一定量のデータをバッファーする必要があります。この状況は、X サーバーからの平均データ速度が 100 Mbps を十分に下回る場合でも起きる場合があります。

X サーバーは、一定の許容量のデータをティック間隔で送信するようにプログラムされています。元の実装では毎秒 50 ティックでした。X サーバーは、Sun Ray クライアントによって許可された特定の速度で送信することが許可されています。

たとえば、Sun Ray クライアントで 40 Mbps が許可されている場合は、毎秒 5 MB のバースト (1/50 秒ごとに送信される) 送信できます。これは、サーバーはティックごとに 100 KB のデータを 1 Gbps の速度で送信できることを意味します。この速度は、スイッチ内にキューが約 100 KB 蓄積されてから、次の 1/50 秒後に 100 Mbps 吐き出されることになります。

このような問題を緩和するため最初のアクションは、ティック数/秒を 50/秒 から 100 に増やすことです。つまり、上記の例では、X サーバーは 20 ms ごとに 100 KB ではなく、10 ms ごとに 50 KB を送信します。この設定は状況はかなり改善しますが、問題はまだ解決されません。100 ティック/秒の速度が選択されたのは、Oracle Solaris および Oracle Linux 内の通常のタイマー解像度に対応していたためです。

ティック数/秒を 100 より増やすには、オペレーティングシステムのタイマーも増やす必要があります。Oracle Solaris の場合、次の手順を使用してください。

手順
  1. 次の行を /etc/system ファイルに追加します。

    set hires_tick=1
  2. システムをリブートします。

hires_tick=1 設定は、システムタイマー解像度を 1000 ティック/秒に増やします。

X サーバーコードはシステム設定を使用するので、X サーバーのデータバーストは同じ値 (1000 ティック = 1 秒、つまり 1 ティック = 1 ms) を使用することになります。例では、新しいティック時間を使用することで、X サーバーは 1 ms ごとに 5 KB のデータを送信します。

ティック時間を変更すると、ネットワークスイッチで必要なバッファリング量が減るため、Sun Ray クライアントのパフォーマンスが向上するはずです。