Linux
ifconfig 丟棄的 RX 數據包到底是什麼?
我
RX dropped
在輸出中看到非常高ifconfig
的數據包:每秒數千個數據包,比正常數據包多一個數量級RX packets
。wlan0 Link encap:Ethernet HWaddr 74:da:38:3a:f4:bb inet addr:192.168.99.147 Bcast:192.168.99.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:31741 errors:0 dropped:646737 overruns:0 frame:0 TX packets:18424 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:90393262 (86.2 MiB) TX bytes:2348219 (2.2 MiB)
我正在測試 WiFi 加密狗。兩者都有這個問題,而且掉率高的那個其實在ping洪水時表現更好。丟包率低的一個會遭受極端的 Ping RTT,而另一個則從不跳過一個節拍。
- Linux 認為丟棄的數據包是什麼?
- 為什麼我看到這麼多?
- 為什麼它似乎不影響性能?
周圍有很多問題的答案說丟棄的數據包可能是以下之一,但這對我沒有多大幫助,因為在這種情況下這些可能性似乎沒有意義。
從中看到的 Packet Dropped
ifconfig
可能是由於多種原因,您應該深入探勘 NIC 統計資訊以找出真正的原因。以下是一些一般原因
- NIC 環形緩衝區已滿,無法應對傳入的突發流量
- CPU接收網卡中斷很忙,無法處理
- 一些電纜/硬體/雙工問題
- 網卡驅動程序中的一些錯誤
看看輸出
ethtool -S wlan0
iwconfig wlan0
以及
/proc/net/wireless
任何進一步資訊的內容。
對於我們的情況,由於 IP 地址值大於網路遮罩值(例如:17.229.24. 266與255 .255.255.0、266 > 255)而導致 RX 丟棄數據包的相同問題
BBui 2020 年 3 月 3 日