Menu Close
Settings Close

Language and Page Formatting Options

第33章 NIC リングバッファーの監視と調整

受信リングバッファーは、デバイスドライバーとネットワークインターフェイスコントローラー (NIC) の間で共有されます。カードは、送信 (TX) および受信 (RX) リングバッファーを割り当てます。名前が示すように、リングバッファーは循環バッファーであり、オーバーフローによって既存のデータが上書きされます。NIC からカーネルにデータを移動するには、ハードウェア割り込みと、SoftIRQ とも呼ばれるソフトウェア割り込みの 2 つの方法があります。

カーネルは RX リングバッファーを使用して、受信パケットをデバイスドライバーで処理できるようになるまで格納します。デバイスドライバーは、通常は SoftIRQ を使用して RX リングをドレインします。SoftIRQ は、着信パケットを sk_buff または skb と呼ばれるカーネルデータ構造に配置し、カーネルを経由して関連するソケットを所有するアプリケーションまでの旅を開始します。

カーネルは TX リングバッファーを使用して、ワイヤ宛ての発信パケットを保持します。

これらのリングバッファーはスタックの一番下にあり、パケットドロップが発生する重要なポイントであり、ネットワークパフォーマンスに悪影響を及ぼします。

33.1. 破棄されたパケット数の表示

ethtool ユーティリティーを使用すると、管理者はネットワークドライバーの設定をクエリー、設定、または制御できます。

リングバッファーが使い果たされると、ethtool -S interface_name の出力で破棄またはドロップなどのカウンターがインクリメントされます。破棄されたパケットは、カーネルがパケットを処理できるよりも早く利用可能なバッファーが満杯になっていることを示しています。

手順

  • enp1s0 インターフェイスのドロップカウンターを表示します。

    $ ethtool -S enp1s0