Ubuntu
為什麼我在 Ubuntu 伺服器上的 NIC 統計資訊中看到丟棄的數據包?
我看到在我的 eth0 介面上使用 ifconfig 丟棄的數據包:
eth0 Link encap:Ethernet HWaddr 00:15:17:0d:03:ca inet addr:10.0.1.2 Bcast:10.0.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:9000 Metric:1 RX packets:30268348 errors:0 dropped:70721 overruns:0 frame:0 TX packets:133076885 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:8699434077 (8.6 GB) TX bytes:194937313025 (194.9 GB) Interrupt:16 Memory:feae0000-feb00000
當我使用 ethtool -S 時,我沒有發現任何問題:
NIC statistics: rx_packets: 30267138 tx_packets: 133074510 rx_bytes: 8699356158 tx_bytes: 194934147340 rx_broadcast: 35296 tx_broadcast: 5435 rx_multicast: 0 tx_multicast: 0 rx_errors: 0 tx_errors: 0 tx_dropped: 0 multicast: 0 collisions: 0 rx_length_errors: 0 rx_over_errors: 0 rx_crc_errors: 0 rx_frame_errors: 0 rx_no_buffer_count: 0 rx_missed_errors: 0 tx_aborted_errors: 0 tx_carrier_errors: 0 tx_fifo_errors: 0 tx_heartbeat_errors: 0 tx_window_errors: 0 tx_abort_late_coll: 0 tx_deferred_ok: 0 tx_single_coll_ok: 0 tx_multi_coll_ok: 0 tx_timeout_count: 0 tx_restart_queue: 0 rx_long_length_errors: 0 rx_short_length_errors: 0 rx_align_errors: 0 tx_tcp_seg_good: 5757001 tx_tcp_seg_failed: 0 rx_flow_control_xon: 8649 rx_flow_control_xoff: 62072 tx_flow_control_xon: 0 tx_flow_control_xoff: 0 rx_long_byte_count: 8699356158 rx_csum_offload_good: 30212111 rx_csum_offload_errors: 0 rx_header_split: 10857552 alloc_rx_buff_failed: 0 tx_smbus: 0 rx_smbus: 0 dropped_smbus: 0 rx_dma_failed: 0 tx_dma_failed: 0
我正在執行核心為 3.2.0-30-generic #48-Ubuntu SMP 的 Ubuntu 12.04 我已經 ping 我內部網路上的每個設備大約 24 小時,沒有丟包。還檢查了我的路由器和我的 WAN 介面,那裡也沒有錯誤。
有沒有人有任何線索?
新核心使用的丟棄狀態與舊核心略有不同。這用於表示由於各種原因而被丟棄的數據包:
- 線路上的非 IP 數據包
- 帶有未知協議標誌的 IP 數據包
- 錯誤的 VLAN 標記
- softnet backlog 已滿(在 /proc/net/softnet_stat 中測量)
這在您的網路中很可能是正常的,並且不太可能是您正在測量它們的盒子的錯誤。