计数分两个层面
主机侧的丢包计数分布在两个层面:驱动层记录网卡收发过程中的丢弃与错误,协议栈层记录更高层的统计,比如缓冲不足、队列裁剪、连接中止等。两个层面的计数含义不同,混在一起看很容易得出错误结论。正确做法是先分层定位,确认丢包发生在驱动还是协议栈,再取两次采样的差值并与业务窗口对齐,这样得出的数字才对应得上用户实际感受到的问题。
基本信息
| 适用平台 | Linux(网卡驱动统计与协议栈统计) |
|---|---|
| 常用命令 | ethtool -S、ip -s link show、netstat -s |
| 统计口径 | 取两次采样差值,与业务时间窗对齐 |
| 注意点 | 虚拟网卡与物理网卡的计数含义不同 |
典型使用场景
- 业务报丢包但抓包看不出异常,需要先确认本机层是否已经在丢
- 压测中定位瓶颈落在网卡驱动还是协议栈
- 突发流量后核对是否出现队列丢弃
- 长期运行主机做趋势观察,预防容量问题
- 上云或虚拟化环境中区分虚拟机与宿主的计数
- 为网卡参数调整提供量化前后对照
速查命令
速查命令
ethtool -S eth0 | grep -Ei 'drop|error|miss' # 驱动层丢弃与错误
ip -s link show eth0 # 收发统计与错误计数
netstat -s | grep -Ei 'drop|overflow|pruned' # 协议栈层统计
# 上电累计计数要取差值: 两次采样间隔与业务窗口对齐
# 虚拟网卡的计数与宿主物理网卡不同,需分层对照命令逐项读法
| 命令 | 覆盖层面 | 读法要点 |
|---|---|---|
| ethtool -S | 网卡驱动层 | 关注丢弃与错误类计数,突发时段看增量 |
| ip -s link | 接口收发统计 | 错误与丢弃分开看,注意方向 |
| netstat -s | 协议栈层 | 按段归类,先分缓冲与队列两类 |
| /proc 下软中断统计 | 收包处理路径 | 第 2 列为丢弃计数,需按核观察 |
计数大多是上电以来的累计值,不看差值就等于对着历史数据下结论,采样窗口必须与业务时段对齐。
虚拟网卡的计数含义与物理网卡不同,虚拟机内看到的数字不一定对应宿主侧的真实丢弃。