首页主机资讯Linux dropped怎么分析

Linux dropped怎么分析

时间2025-11-18 10:03:04发布访客分类主机资讯浏览995
导读:Linux dropped 分析与定位 一、先明确 dropped 的统计含义 在接口层,dropped 来自内核的 /proc/net/dev,其值为 rx_dropped + rx_missed_errors 的累计,表示“设备层已接...

Linux dropped 分析与定位

一、先明确 dropped 的统计含义

  • 在接口层,dropped 来自内核的 /proc/net/dev,其值为 rx_dropped + rx_missed_errors 的累计,表示“设备层已接收但被内核/驱动层丢弃”的报文数量;它不等同于物理链路错误。工具如 ifconfig、netstat -iRX-DRP 列本质都读取该文件。
  • 在协议栈层,可用 netstat -s 查看各协议(IP、ICMP、TCP、UDP)的收发与丢弃统计,用于判断是否为协议处理阶段(如分片重组、ICMP 限流等)导致的丢包。
  • 在更细的维度上,还需区分 RX droppedRX overruns:前者多为内核/内存原因导致拷贝失败,后者多为 Ring Buffer 溢出(驱动队列满)导致,常与中断/软中断处理不及时相关。

二、快速定位流程

  1. 确认是否在增长
  • 接口层:watch -d ‘cat /proc/net/dev | egrep “eth|ens”’ 或 ifconfig/ethtool -S 观察 RX-DRP/RX-OVR 是否持续递增。
  • 协议栈层:watch -d ‘netstat -s | egrep “fragments dropped|reassembles failed|packet headers predicted|TCPTimeouts|TCPSynRetrans”’ 观察是否有协议层异常计数增长。
  1. 判断丢包位置
  • RX-DRP 增长而 RX-OVR 不增长:更可能是内核/驱动内存不足、拷贝失败等导致的 RX dropped
  • RX-OVR 增长明显:多为 Ring Buffer 溢出,常见于中断/软中断处理不过来(CPU 绑定不均、软中断风暴等)。
  • netstat -s 中分片重组相关计数增长:考虑 MTU/分片 问题(如 ICMP blackhole、分片重组超时/失败)。
  • netstat -s 中 TCP 超时/重传增长:多为链路拥塞或远端问题,可结合端到端探测进一步确认。
  1. 定位具体丢弃点
  • 使用 dropwatch 观察内核丢包调用栈(如 kfree_skb 位置),快速判断是 netfilter、队列、驱动还是其他路径丢弃。
  • 使用 bpf/nettrace 在内核 hook 点追踪丢包位置与上下文,辅助定位到具体函数/规则。
  1. 抓包与端到端验证
  • 在问题接口抓包:tcpdump -ni eth0 -ttt greater 1532(排查 MTU 超限大包);必要时配合 Wireshark/tshark 分析重传、乱序、ICMP 等。
  • 端到端质量:mtr/traceroute 观察各跳丢包与时延,注意中间设备对 ICMP 限流可能导致“假丢包”现象。

三、常见根因与对应处理

现象特征 可能根因 快速验证 处理建议
RX-OVR 增长 Ring Buffer 溢出、中断/软中断处理不及时 ethtool -S 看 rx_fifo/overruns;sar -n SOFTIRQ/硬中断 增大 Ring Buffer(ethtool -G rx);中断/CPU 亲和与队列优化;降低软中断负载
RX-DRP 增长、RX-OVR 不增长 内核/驱动内存不足、拷贝失败 dropwatch/nettrace 定位 kfree_skb 位置 调大网络内存:net.core.rmem_default/wmem_default、net.core.rmem_max/wmem_max
netstat -s 分片重组失败/超时 MTU 不匹配、分片重组问题 ping -M do -s ;netstat -s 调整 MTU;启用 TCP MTU Probe;必要时调大 ipfrag_time/high_thresh
nf_hook_slow 相关丢包 iptables/nftables 规则丢弃 dropwatch/nettrace 显示 nf_hook_slow 审计规则(iptables -S/-L -v -n),临时停用规则验证
TCP 超时/重传、SYN 重试 链路拥塞、远端异常、半开连接过多 netstat -s 扩容带宽/优化队列;调大 tcp_max_syn_backlog;优化应用并发与超时
连接跟踪满 nf_conntrack 表项不足 sysctl net.netfilter.nf_conntrack_max;conntrack -L 增大 nf_conntrack_max;缩短相关超时;优化连接生命周期

上述处理要点涉及的命令与参数示例:ethtool -G/ethtool -S、dropwatch/nettrace、netstat -s、tcpdump、sysctl 调整网络与连接跟踪参数等。

四、常用命令速查

  • 接口与驱动层

    • cat /proc/net/dev;ifconfig/ethtool -S ;ethtool -g (查看/调整 Ring Buffer);ethtool -k (查看 offload 开关)。
  • 协议栈与丢包点

    • netstat -s(协议层统计);dropwatch(内核丢包栈);nettrace --drop(BPF 追踪丢包);tcpdump -ni -ttt greater 1532(抓大包/MTU 问题)。
  • 连接跟踪与会话

    • sysctl net.netfilter.nf_conntrack_max;conntrack -L/-C(查看/统计 conntrack 表)。
  • 系统日志

    • tail -f /var/log/{ syslog,messages} ;journalctl -k -f;grep/awk 过滤关键字(如 error、drop、denied)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux dropped怎么分析
本文地址: https://pptw.com/jishu/749860.html
Linux dropped怎么调试 Linux dropped有什么危害

游客 回复需填写必要信息