为什么我在 Ubuntu 服务器的 NIC 统计信息中看到丢弃的数据包?

为什么我在 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

我运行的是 Ubuntu 12.04,内核是 3.2.0-30-generic #48-Ubuntu SMP。我已经 ping 了内部网络上的所有设备约 24 小时,没有丢包。还检查了我的路由器和 WAN 接口,也没有出现错误。

有人知道吗?

答案1

新内核使用已丢弃的状态与旧的稍有不同。这用于表示由于各种原因而被丢弃的数据包:

  • 线路上的非 IP 数据包
  • 具有未知协议标志的 IP 数据包
  • 错误的 VLAN 标签
  • 软网络积压已满(以 /proc/net/softnet_stat 衡量)

这在您的网络中很可能是正常现象,而且不太可能是您测量它们的盒子的故障。

相关内容