TCP 要求/応答ワークロードのチューニング

TCP 要求/応答ワークロードは、両方向の情報交換を伴うワークロードです。

要求および応答ワークロードの例としては、 リモート・プロシージャー・コール (RPC) タイプのアプリケーションやクライアント/サーバー・アプリケーションがあります。 Web サーバーへの Web ブラウザー要求、NFS ファイルシステム (トランスポート・プロトコルとして TCP を使用)、 データベースのロック管理プロトコルなどがこれにあたります。 このような要求は、メッセージが小さく、応答が大きくなることが多いですが、要求が大きく、応答が小さくなる場合もあります。

これらのワークロードで重要な意味を持つ測定基準は、ネットワークの往復待ち時間です。 この種の要求や応答は、小さなメッセージを使用する場合が多いので、 ネットワーク帯域幅は大きな問題になりません。

ハードウェアは待ち時間に大きな影響を与えます。 例えば、ネットワークのタイプ、 ネットワーク・スイッチやルーターのタイプとパフォーマンス、ネットワークの各ノードで使用するプロセッサーの速度、アダプターやバスの待ち時間はいずれも、往復時間に影響を与えます。

一般に、待ち時間を最小にする (応答速度を最速にする) チューニング・オプションを設定すると、システムが待ち時間と応答時間を最小にするためにより多くのパケットを送信するとか、より多くの割り込みを処理するといったことが必要になるため、CPU のオーバーヘッドが大きくなります。 これは、パフォーマンスに関する古典的なトレードオフです。

要求/応答アプリケーションの主なチューナブルなものは、以下のとおりです。

  • tcp_nodelay または tcp_nagle_limit
  • tcp_nodelayack
  • アダプター割り込み合体設定
注: 一部の要求/応答ワークロードでは、1 方向のデータが大量になります。 このようなワークロードは、ワークロードごとに、ストリーミングと待ち時間を 組み合わせてチューニングすることが必要になります。