第18章 ネットワーク決定のヒント

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

  • 順番どおりの配信が必要か。
  • パケットロスに対して保護する必要があるか。

    複数回パケットを送信すると遅延が発生する可能性があります。

  • TCP を使用する必要があるか。

    ソケットで TCP_NODELAY を使用して Nagle バッファリングアルゴリズムを無効にすることを検討してください。Nagle アルゴリズムはすべてを一度に送信するために小さな送信パケットを収集するので、レイテンシーに悪影響を及ぼす可能性があります。

18.1. 割り込みの結合

スループットが最優先である大容量のデータを転送するシステムでは、結合のデフォルト値を使用するか値を増やすと、スループットを高め、CPU にアクセスする割り込みの数を減らすことができます。高速なネットワーク応答が必要なシステムでは、結合の値 を減らすか、無効にすることが推奨されます。

割り込みの数を減らすには、パケットを収集します。パケットの集合に対して、1 回の割り込みが生成されます。

前提条件

  • 管理者権限がある。

手順

  • 割り込みの結合を有効にするには、--coalesce オプションを指定して ethtool コマンドを実行します。

    # ethtool -C tun0

検証

割り込みの結合が有効になっていることを確認します。

# ethtool -c tun0
Coalesce parameters for tun0:
Adaptive RX: n/a  TX: n/a
stats-block-usecs: n/a
sample-interval: n/a
pkt-rate-low: n/a
pkt-rate-high: n/a

rx-usecs: n/a
rx-frames: 0
rx-usecs-irq: n/a
rx-frames-irq: n/a

tx-usecs: n/a
tx-frames: n/a
tx-usecs-irq: n/a
tx-frames-irq: n/a

rx-usecs-low: n/a
rx-frame-low: n/a
tx-usecs-low: n/a
tx-frame-low: n/a

rx-usecs-high: n/a
rx-frame-high: n/a
tx-usecs-high: n/a
tx-frame-high: n/a

CQE mode RX: n/a  TX: n/a