web-dev-qa-db-ja.com

ethtool -gの出力のringパラメータは何を意味していますか?

たとえば、ethtool -g eth0私のシステムでは、次の出力が得られます。

Ring parameters for eth0:
Pre-set maximums:
RX:             4096
RX Mini:        0
RX Jumbo:       0
TX:             4096
Current hardware settings:
RX:             4096
RX Mini:        0
RX Jumbo:       0
TX:             4096

4096は1フレームに割り当てられたバイト単位のバッファーサイズですか?そのようなバッファーの数は複数ですか、それともバッファーの数ですか?

6
tejus

Tx/Rxバッファーは、トラフィックバーストを処理するためにネットワークアダプターによって割り当てられるメモリ空間です。トラフィックがネットワークアダプターの物理容量を超えると、バッファリングが行われます。バッファサイズを増やすと、アダプタが過負荷になったときのパケット損失を回避できます。

5
Strepsils

この記事は、リングバッファーの機能を説明するのに役立ちます。 (ドライバーキュー)が機能し、その目的/機能を理解するのに役立ちます。記事のタイトルは Linuxネットワークスタックでのキューイング です。

このセクションは興味深いものです。

ドライバーキュー(別名リングバッファー)

IPスタックとネットワークインターフェイスコントローラー(NIC)の間には、ドライバーキューがあります。このキューは通常、先入れ先出し(FIFO)リングバッファー( http://en.wikipedia.org/wiki/Circular_buffer )として実装されています。これは固定されたものと考えてください。サイズのバッファ。ドライバキューにパケットデータが含まれていません。代わりに、ソケットカーネルバッファーと呼ばれる他のデータ構造(SKB、 http://vger.kernel.org/%7Edavem/skb.html )を指す記述子で構成され、パケットデータを保持し、カーネル全体で使用されます。

次の図は、リングバッファーが構造的にどこに適合するかを示しています。

ss1

この記事によると、リングバッファーのサイズは SKBs(ソケットカーネルバッファー) 記述子の数を制御します。 SKBの詳細については、提供されているリンクを参照してください。SKBを構成するCデータ構造が示されています。

そのドキュメントを見ると、リングバッファは単にフレームバッファに関連しているようではなく、パケットに関連するはるかに複雑なカーネルデータ構造へのポインタであるように見えます。

0
slm