Mik*_*e B 12 networking centos ifconfig
有人可以详细说明输出中各个RX packets字段之间的区别ifconfig吗?
例如,假设我运行ifconfig并看到以下内容:
eth0 Link encap:Ethernet HWaddr AA:BB:CC:DD:EE:FF
inet addr:1.1.1.1 Bcast:1.1.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:202723544 errors:0 dropped:4959 overruns:0 frame:37
TX packets:158354057 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4261083782 (3.9 GiB) TX bytes:1224803677 (1.1 GiB)
Interrupt:83 Memory:f6bf0000-f6c00000
Run Code Online (Sandbox Code Playgroud)
是有什么区别errors: dropped: overruns和frame:
我在这一点上的猜测(基于一些模糊的谷歌搜索)是frame:当 nic 分析传入帧时特别与 CRC 失败有关,这errors:是一个更广泛的通用类别。再说一遍……如果是这样,我希望这两个字段都显示数字。
jcb*_*rmu 17
该信息记录不全。我会告诉你我从我的经历中了解到的。
frame 只计算未对齐的帧,这意味着长度不能被 8 整除的帧。因为该长度不是有效帧,它被简单地丢弃。
同时errors计数CRC错误、过短帧和过长帧。
overruns 计算 FIFO 溢出的次数,这是由缓冲区变满而内核无法清空它的速率引起的。
最后,dropped当接口未配置为 IPv6 时,计算意外的 VLAN 标记或接收 IPv6 帧等事件。
小智 10
我知道这是一个 1 年前的问题,但它在谷歌上排名第一,所以也许我可以加 5 美分。
首先,我不知道框架字段上的这个 mod 8 规则......它是驱动程序规则还是内核规则?
根据我的一点经验,这些数字非常通用,可以从ethtool(如果驱动程序支持)获得更多信息,例如:这是来自watch命令。
Every 1s: ethtool -S eth1 | grep rx_ && echo && ifconfig eth1 1970-01-01 00:21:07
rx_octets: 12635134290
rx_frames: 8488675
rx_broadcast_frames: 103
rx_multicast_frames: 0
rx_pause_frames: 0
rx_64_byte_frames: 113
rx_65_127_byte_frames: 47
rx_128_255_byte_frames: 186340
rx_256_511_byte_frames: 1
rx_512_1023_byte_frames: 0
rx_1024_1518_byte_frames: 8302174
rx_greater_than_1518_byte_frames: 0
rx_undersized_frames: 0
rx_oversize_frames: 0
rx_jabbers: 0
rx_frame_check_sequence_errors: 0
rx_length_field_frame_errors: 0
rx_symbol_errors: 0
rx_alignment_errors: 0
rx_resource_errors: 283
rx_overruns: 132
rx_ip_header_checksum_errors: 0
rx_tcp_checksum_errors: 0
rx_udp_checksum_errors: 0
eth1 Link encap:Ethernet HWaddr AA:BB:CC:DD:20:16
inet addr:192.168.0.10 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::a8bb:ccff:fedd:2016/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:8488675 errors:415 dropped:4 overruns:132 frame:283
TX packets:647464 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3892403548 (3.6 GiB) TX bytes:62273943 (59.3 MiB)
Interrupt:147 Base address:0xc000
Run Code Online (Sandbox Code Playgroud)
根据驱动程序的不同,在ethtool和
ifconfig字段也可以指向尺寸过小/过大的帧。
如果您的 NIC 和驱动程序支持它,您可以(或应该)执行以下操作:
ifdown eth1 && modprobe -r macb && modprobe macb && ifup eth1 && ethtool -offload eth1 rx off tx off && ethtool -K eth1 gso off && ethtool --show-offload eth1
Run Code Online (Sandbox Code Playgroud)
为了获得更多信息(启用让信息显示在 ethtool 中)。我在这里使用 macb 驱动程序...所以请检查ethtool您的驱动程序。
ethtool -i eth1
Run Code Online (Sandbox Code Playgroud)
这通常有助于我了解正在发生的事情。
有时没有错误,但数据包已损坏……那么这更多是物理或驱动程序问题……有时嗅探器显示一切正确,但在到达驱动程序/内核后出现问题(这是上面的情况)实际上)。
可以从 中获得更多信息netstat -s,或者如果将其放入脚本中(对于小型嵌入式系统):
awk '(f==0) { i=1; while ( i<=NF) {n[i] = $i; i++ }; f=1; next} (f==1){ i=2; while ( i<=NF){ printf "%s = %d\n", n[i], $i; i++}; f=0}' /proc/net/netstat
Run Code Online (Sandbox Code Playgroud)
因为netstat -s可能不可用。
| 归档时间: |
|
| 查看次数: |
60789 次 |
| 最近记录: |