需要協助收集 ethtool 報告的資料包遺失統計資料 (EL7/EL8)

需要協助收集 ethtool 報告的資料包遺失統計資料 (EL7/EL8)

我一直在嘗試閱讀作業系統的各種工具(以及各個層級)報告的掉落的詳細資訊。到目前為止,我透過谷歌搜尋找到的大部分資訊對我來說似乎都是「手動的」。

首先,讓我聲明一下,我正在查看的範例主機顯示 0 下降/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 drop 的樣子:

# 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

相關內容