私は、OS のさまざまなツール (およびさまざまなレベル) によって報告されるドロップの詳細について調べようとしてきました。これまでのところ、Google 検索で掘り出すことができた情報のほとんどは、私にとってはむしろ「大雑把」なようです。
まず、私が見ているサンプル ホストでは、ドロップがゼロであることを示してい/proc/net/softnet_stat
ます。これは、NIC リング バッファのサイズが適切である可能性が高いことを示しています。次にethtool
...
NIC マルチキューは次のようになります。
# ethtool -l em1
Channel parameters for em1:
Pre-set maximums:
RX: 16
TX: 16
Other: n/a
Combined: n/a
Current hardware settings:
RX: 16
TX: 16
Other: n/a
Combined: n/a
ここで、同じインターフェースの rx ドロップは次のようになります。
# ethtool -S em1 | grep rx.*dropped:
rx_dropped: 1742
rx0_dropped: 0
rx1_dropped: 0
rx2_dropped: 0
rx3_dropped: 0
rx4_dropped: 0
rx5_dropped: 0
rx6_dropped: 0
rx7_dropped: 0
rx8_dropped: 0
rx9_dropped: 0
rx10_dropped: 0
rx11_dropped: 0
rx12_dropped: 0
rx13_dropped: 0
rx14_dropped: 0
rx15_dropped: 0
ここでの私の仮定はここでの 16 個の個別キューは、NIC リング バッファ マルチキューに関連しています。ここでのすべてのゼロは、 で見たものと一致しているようです。さらに、ドロップが発生している場合は、 でカウントされたドロップがこの出力に反映されるものsoftnet_stat
と想定しています(現在は発生していません)。softnet_stat
ethtool
こうすると、実際には増加している曖昧な'rx_dropped'
フィールドが残ります。したがって、これは NIC リング バッファとは関係がなく、上位プロトコルのドロップ カウンタであるというのが私の推測です。このカウントは、実際にip -s
はインターフェイスの統計に反映されています。
# ip -s link show dev em1
2: em1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 9000 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000
link/ether 94:18:82:70:2e:42 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped missed mcast
219512805660516 147616023841 0 1742 0 5624266
TX: bytes packets errors dropped carrier collsns
649765242476657 450168813646 0 0 0 0
これらのドロップは、不正なパケット、不良ポート、混雑したアプリ バッファなど、さまざまなプロトコル関連の問題の結果である可能性があると考えています。
これは、 によって報告された「異なる」ドロップ統計を説明する合理的な分析のように思えますかethtool -S
?