【问题标题】:What are meanings of fields in /proc/net/dev?/proc/net/dev 中字段的含义是什么?
【发布时间】:2011-04-01 02:29:26
【问题描述】:

Linux 文件 /proc/net/dev 如下所示:

[me@host ~]$ cat /proc/net/dev
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed

droperrs 字段是什么意思?

某些errs 数据包是否也计入丢弃 数据包?

为什么一个数据包会被认为是errs,是因为它存在校验和错误吗?

为什么丢包?是因为系统没有足够的缓冲区还是因为网卡上有一些突发?

这两个字段是否考虑了发往另一台主机的数据包(例如,当 NIC 在混杂模式下工作时)?

【问题讨论】:

  • 这些数字会在某个时候重置吗?这些是终生数字吗?

标签: linux tcp


【解决方案1】:

您可以查看源代码树中的net/core/dev.c 以了解其含义:

seq_printf(seq, "%6s:%8lu %7lu %4lu %4lu %4lu %5lu %10lu %9lu "
       "%8lu %7lu %4lu %4lu %4lu %5lu %7lu %10lu\n",
       dev->name,
       stats->rx_bytes,
       stats->rx_packets,
       stats->rx_errors,
       stats->rx_dropped + stats->rx_missed_errors,
       stats->rx_fifo_errors,
       stats->rx_length_errors + stats->rx_over_errors +
        stats->rx_crc_errors + stats->rx_frame_errors,
       stats->rx_compressed,
       stats->multicast,
       stats->tx_bytes,
       stats->tx_packets,
       stats->tx_errors,
       stats->tx_dropped,
       stats->tx_fifo_errors,
       stats->collisions,
       stats->tx_carrier_errors + stats->tx_aborted_errors +
        stats->tx_window_errors + stats->tx_heartbeat_errors,
       stats->tx_compressed);

所以:

  • 接收错误表示任何类型的无效数据包,例如长度无效或校验和无效
  • 传输错误是
    • 运营商错误
    • 中止错误
    • 窗口错误
    • 心跳错误
      (不管它们是什么意思)

是的,我认为丢包意味着设备因为缓冲区空间不足而丢弃了一个数据包。

【讨论】:

  • 您认为接收丢包和传输丢包有什么区别?
  • 我猜每个都有一个缓冲区,当缓冲区满时它会丢弃数据包。当系统或应用程序太慢而无法处理传入的数据包时(例如系统过载,或应用程序处理数据包的速度比它们到达的速度慢),接收丢弃将发生。当网卡或网络太慢而无法处理传出数据包时,就会出现传输丢失。
  • 是的,我已经猜到了类似的东西。你知道任何可以提供确定性的消息来源吗?
  • 这些数字会在某个时候重置吗?这些是终生数字吗?
  • 在最近的内核中这是在net/core/net-procfs.c git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/…
【解决方案2】:

根据http://www.onlamp.com/pub/a/linux/2000/11/16/LinuxAdmin.html,每一列的含义是:

bytes接口发送或接收数据的总字节数。

packets接口发送或接收的数据包总数。

errs 设备检测到的发送或接收错误总数 司机。

drop设备驱动程序丢弃的数据包总数。

fifo FIFO 缓冲区错误数。

frame包帧错误的数量。

colls在接口上检测到的冲突数。

compressed 设备发送或接收的压缩包数 司机。 (这似乎在 2.2.15 内核中未使用。)

carrier设备驱动程序检测到的载波丢失的数量。

组播 设备发送或接收的组播帧数 司机。

【讨论】:

  • 链接现在指向 O'Reiley 网站。 This 可以替换
【解决方案3】:

由于将近六个月没有人回答,我随意推测:

我不认为 errsdrops 重叠。我还认为 errsreceived 数据包中的校验和或其他不良数据(即没有足够的数据构成整个数据包)。此外,我认为 drops 仅适用于 outgoing 包裹 - 系统如何知道在其他地方丢弃的包裹?

【讨论】:

  • 你是对的,它们似乎没有重叠。 drops 可以适用于两者。例如,如果这台计算机上的应用程序以 1 Gb/s 的速度发送数据,而您有一个 10 Mb/s 的 NIC。您也可以猜测它可能会发生,因为 drops 出现在输出的 Receive 和 Transmit 部分。
猜你喜欢
  • 2016-01-18
  • 1970-01-01
  • 2016-08-14
  • 2019-04-27
  • 2016-10-04
  • 1970-01-01
  • 2011-06-20
  • 1970-01-01
  • 2010-10-22
相关资源
最近更新 更多