如何理解ifconfig中的errors/dropped/fifo/frame统计指标

对于ifconfig来说,它所获取一些错误统计信息如下所示:

RX packets 0  bytes 0 (0.0 B)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 0  bytes 0 (0.0 B)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

首先这些指标获取是从/proc/net/dev:

cat /proc/net/dev
Inter-|   Receive                                                              |  Transmit
 face |       bytes    packets    errs  drop  fifo  frame  compressed multicast| bytes    packets      errs drop fifo colls carrier compressed
docker0:      0          0          0     0     0     0          0         0       0          0          0    0     0     0       0          0
eth1:         4847481013 8371013    0     0     0     0          0         0       1375941032 6231188    0    0     0     0       0          0
lo:           1812       6          0     0     0     0          0         0       1812       6          0    0     0     0       0          0

主要通过这里去获取errs统计计数、drop统计计数、fifo统计计数和frame统计计数。

如何理解这里的RX errors和dropped,以及overruns和frame。首先需要明确的就是这里的统计信息均来自于内核驱动层,驱动实际上都是通过获取硬件中的状态来得到这些信息的,因此这里统计的值都是网卡上会出现的情况,驱动从网卡寄存器中读取到相应的计数信息,因此这些计数信息不涉及系统软件协议栈中的丢包和错误。
内核在打印这些内容时,是通过如下信息进行输出的:

net/core/net-procfs.c:
errors          ---------   stats->rx_errors
dropped         ---------   stats->rx_dropped + stats->rx_missed_errors
overruns(fifo)  ---------   stats->rx_fifo_errors
frame           ---------   stats->rx_length_errors + stats->rx_over_errors + stats->rx_crc_errors + stats->rx_frame_errors

上面的对应关系,其右侧的指标都是从网卡上获取的,那么对于具体的含义,每个网卡可能多少会存在一些差异,不过在设计上总的还是遵循如下原则的:
1.errors指的是网卡接收异常统计,这个值是从网卡上读取到的,并否内核计数,因此具体含义需要参考网卡的技术说明书,可以认为是接收到异常包,接收异常错误统计的总和。
2.overruns指的是fifo被填满了从而导致的丢包量,当内核申请内存给网卡使用,如果被填满后,内核还没有来得及读取和清空数据,那么就会触发overrun,从而把第一个包丢弃掉。
3.frame指的是帧格式错误计数,一般是帧不符合要求,比如长度未进行8字节对齐,2层帧中的crc校验错误等,很可能是网线或者网口异常引起。
4.rx_dropped统计了网卡丢包数同时也包括网卡dev层的内核丢包,比如内核发现网卡传递过来的包是不支持的协议类型,那么就会丢弃该包同时增加该计数。

最后来特别介绍一下dropped指标,从名字上来看是丢包了,这个丢包和大家口中常说的丢包其实是不同的,这里的dropped仅仅特指网卡对特定包执行了丢弃操作。而我们所说的应该叫系统丢包,它可能包含多种情况,本文介绍的erros/dropped/overruns/frame指标值,如果站在系统的角度都可以被叫做系统丢包了,当然除了网卡错误导致的丢包还应该包括协议栈里面的丢包等。

会产生rx_dropped统计值的情况包括如下几种:

1.Softnet backlog full ( /proc/net/softnet_stat)
2.Bad / Unintended VLAN tags
3.Unknown / Unregistered protocols
4.IPv6 frames when the Nic is not configured for IPv6
### 回答1: 如果你的Linux系统没有ifconfig命令和/etc/sysconfig/network-scripts/文件路径,那么可能是你使用的是最新版本的Linux系统,这些命令和文件路径已经被废弃。相反,你可以使用ip命令来代替ifconfig命令,并使用Network Manager来管理网络连接。 要使用ip命令,你可以在终端输入以下命令: ``` ip addr show ``` 这将显示您系统上可用的所有网络接口及其配置信息。 要使用Network Manager来管理网络连接,你需要安装Network Manager软件包并启动Network Manager服务。 在大多数基于Red Hat的系统上,你可以使用以下命令来安装Network Manager软件包: ``` sudo yum install NetworkManager ``` 然后,你可以使用以下命令来启动Network Manager服务: ``` sudo systemctl start NetworkManager ``` 如果你无法连接到网络,则可能需要检查网络适配器是否正确配置。你可以使用以下命令来检查网络适配器的状态: ``` ip link show ``` 如果适配器未启动,则可以使用以下命令来启动它: ``` sudo ip link set [interface] up ``` 其,[interface]是适配器的名称,例如eth0。 ### 回答2: 如果Linux系统没有ifconfig命令和/etc/sysconfig/network-scripts/文件路径,并且无法连接网络,可能是以下几个原因导致的: 1. 未安装网络管理工具:ifconfig是一个用于配置网络接口的常用命令,如果没有安装网络管理工具,系统将无法使用ifconfig命令。可以通过安装网络管理工具(如net-tools或iproute2)来解决此问题。 2. 网络接口未启用:在Linux系统,网络接口(如eth0)需要手动启用才能连接网络。可以使用ip命令(如ip link set eth0 up)来启用网络接口。 3. 网络配置文件路径不同:在某些Linux发行版,网络配置文件的路径可能与/etc/sysconfig/network-scripts/不同。可以通过查看发行版文档或搜索网络配置文件路径来确定正确的路径。 4. 网络配置错误:如果网络配置文件存在错误,可能会导致无法连接网络。可以检查网络配置文件(如ifcfg-eth0)的地址、网关、DNS等设置是否正确,并尝试重新配置网络。 5. 网络驱动程序或内核问题:有时,网络驱动程序或内核可能存在问题,导致无法正确识别和使用网络接口。可以尝试更新或重新安装网络驱动程序,或升级内核来解决此问题。 需要注意的是,具体的解决方法可能因Linux发行版和版本而有所不同。建议根据具体情况进行适当的调查和研究,或向Linux社区或技术支持寻求帮助。 ### 回答3: 如果Linux系统没有ifconfig命令和路径/etc/sysconfig/network-scripts/,那么可能是由于以下几个原因造成的。 首先,Linux系统可能没有安装网络配置工具。ifconfig命令通常位于网络配置工具包,例如net-tools包。可以使用包管理器(如apt、yum、dnf等)来安装这些工具。例如,在Ubuntu系统,可以使用以下命令安装net-tools: sudo apt-get install net-tools 然后,通过ifconfig命令来查看和配置网络接口。 其次,可能是系统网络配置文件路径不同。在一些Linux发行版,网络接口的配置文件通常位于/etc/network/interfaces或/etc/sysconfig/network-scripts/路径下。但并不是所有的Linux系统都使用相同的配置文件路径。可以通过查找网络接口配置文件的位置来确认正确的路径。 如果无法连接网络,可能是由于未正确配置网络接口或网络设置有问题。可以检查网络配置文件,确保正确设置了网络接口参数,如IP地址、子网掩码、网关等。还可以使用工具如ip命令来查看和配置网络接口。 另外,也需要确保网络连接是正常的。可以尝试重启网络服务或服务器,检查网络设备是否正常工作,以及查看网络设备的状态和配置。 需要根据具体的Linux发行版和网络环境来进行进一步的分析和排查。如果遇到困难,可以参考相关Linux文档或咨询专业人士获取帮助。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值