web-dev-qa-db-ja.com

txqueuelenとethtool txの違い

次のいずれかで適用できるtxqueuelen設定の違いは何ですか?

ifconfig eth4 txqueuelen 5000
ip link set eth4 txqueuelen 5000

そして、以下で適用できるtxリングサイズ設定:

ethtool -G eth4 tx 4096

これらはグローバルとどのように関係していますか/proc/sys/net/core/wmem* 設定?

RHEL6を使用しています。

14

_net.core.wmem_default_および_wmem_max_設定は、TXソケットバッファーの初期サイズと最大サイズをバイト単位で制御します。キュー自体はskbポインターのリンクリストにすぎませんが、カーネルはskbがソケットバッファーに追加およびソケットバッファーから削除されるときに、txqueuelenによって消費される合計バイトサイズも追跡します。 _wmem_default_ sysctlは、新しいソケット(net/core/sock.c:sock_init_data())のデフォルトの初期上限を設定します。アプリケーションはソケットのバッファのサイズを増やすことができ、_wmem_max_はその機能の上限です(net/core/sock.c:sock_setsockopt())。

パケットがソケットバッファーから削除され、カーネルネットワークスタックを介してその経路を見つけた場合、そのパケットは、インターフェイスがNIC自体にロードされるのを待機するために、送信キューに置かれます。 ifconfigまたはipコマンドで設定される[$ var] _は、キューイング規則(net/sched/sch_generic.c:pfifo_fast_enqueue())のカーネル伝送キューごとに許可されるフレームの数です。

最後に、_ethtool -G_はioctlを使用して、NIC自体にリングバッファのリングエントリの数を設定します。

7

私は長く引き延ばされた説明をすることになっていることを知っていますが、D セイモンはすでに持っています 。つまり、txqueuelenはバッファサイズです。すべてのネットワークパケットはこのバッファーに収まりますが、txは、このバッファーに入るIPパケットのパケットサイズです。それは私がその投稿を正しく理解している場合です。

2
eyoung100