2.9. ネットワーク決定のヒント

TCP (Transmission Control Protocol)

TCP はレイテンシーに大きな影響を及ぼす可能性があります。TCP は、効率性の取得、輻輳を制御し、信頼できる配信を保証するためにレイテンシーを追加します。チューニング時には、以下の点を考慮してください。

  • 配信の順番が必要ですか。
  • パケットロスに対して保護する必要がありますか。
    複数のパケットを送信すると遅延が発生する可能性があります。
  • TCP を使用する場合は、ソケット TCP_NODELAY 上で使用して Nagle buffering アルゴリズムを無効にすることを検討してください。Nagle アルゴリズムは小さな送信パケットを収集し、すべてを一度に送信し、レイテンシーに悪影響を及ぼす可能性があります。

ネットワークチューニング

ネットワークを調整するためのツールは多数あります。以下は、より便利なものになります。
コアの割り込み
割り込みの量を減らすには、パケットを収集し、パケットのコレクションに対して単一の割り込みが生成されます。
スループットが最優先である大容量のデータを転送するシステムでは、デフォルト値を使用するかコアレシーを増やし、スループットを高め、CPU にアクセスする割り込みの数を減らすことができます。ネットワークへの迅速な応答を必要とするシステムでは、コアレスを削減または無効化することが推奨されます。
有効にする ethtool コマンドに -C (--coalesce) オプションを指定します。
輻輳
多くの場合、I/O スイッチは、フルバッファーの結果としてネットワークデータがビルドされるバックプレッシングの対象になることがあります。
ethtool コマンドに -A (--pause)オプションを指定して、pause パラメーターを変更し、ネットワークの輻輳を回避します。
Infiniband (IB)
InfiniBand は多くの場合、帯域幅を高め、サービスやフェイルオーバーの品質を提供するために使用される通信アーキテクチャーのタイプです。Remote Direct Memory Access (RDMA) 機能によるレイテンシーを改善するためにも使用できます。
ネットワークプロトコルの統計
ネットワークトラフィックを監視するには、netstat コマンドに -s (--statistics) オプションを使用します。
関連する man ページ

詳細は、以下の man ページは本セクションに記載の情報に関連しています。

  • ethtool(8)
  • netstat(8)