首页主机资讯Linux dropped故障排查

Linux dropped故障排查

时间2025-11-26 10:05:05发布访客分类主机资讯浏览480
导读:Linux dropped 故障排查手册 一 快速确认与分层定位 明确是否为真实丢包:对目标执行 ping 与 traceroute,观察丢包率与跳数异常;同时查看本机 IP、路由是否可达。命令示例:ping 目标IP -c 20;tra...

Linux dropped 故障排查手册

一 快速确认与分层定位

  • 明确是否为真实丢包:对目标执行 ping 与 traceroute,观察丢包率与跳数异常;同时查看本机 IP、路由是否可达。命令示例:ping 目标IP -c 20;traceroute 目标IP;ip a;route -n。若路径中间设备丢包,优先处理中间网络。若本机到网关正常而远端异常,继续分层排查本机收发包路径。
  • 分层定位思路:先看是否为物理/驱动层(接口状态、协商、Ring Buffer),再看内核网络栈(backlog、软中断、iptables),最后看传输层与应用层(TCP队列、分片重组、应用限流/连接满)。

二 硬件网卡与驱动层检查

  • 接口与协商:确认接口为 UP,用 ethtool 检查 speed/duplex/autoneg 是否协商正确;必要时强制重协商(ethtool -r)或固定速率双工(ethtool -s eth0 speed 1000 duplex full autoneg off)。
  • Ring Buffer 与驱动队列:
    • 查看接口统计:cat /proc/net/dev 关注 RX dropped / RX overruns / RX errors;其中 dropped 多为已进入驱动队列后因内存/拷贝失败丢弃,overruns 多为 FIFO 溢出(CPU/中断处理不及时)。
    • 查看驱动层计数:ethtool -S | grep -i rx_fifo;非零表示驱动层 FIFO 溢出。
    • 调整环形缓冲:ethtool -g 查看当前/最大值;ethtool -G rx 4096 tx 4096 适当增大(结合内存与延迟权衡)。
  • 直连设备侧配合:核对交换机端口 VLAN/速率/双工 一致,排除对端输入策略、CRC 等异常。

三 内核网络栈与策略层检查

  • CPU 软中断与 backlog 队列:cat /proc/net/softnet_stat,每行对应一个 CPU,第二列为因 netdev_max_backlog 溢出丢弃的包;若持续增大,适当提高 net.core.netdev_max_backlog(如 2000、4000)。
  • 内核丢包点位定位:
    • dropwatch:dropwatch -l kas 后 start,可直观看到内核 kfree_skb 丢弃位置(如 tcp_v4_rcv、ip_rcv 等)。
    • perf:perf record -g -a -e skb:kfree_skb;perf script 查看调用栈定位具体丢弃原因。
  • 防火墙/安全策略:iptables-save | grep -i drop;iptables -L INPUT -nv 观察 pkts 是否递增;必要时临时关闭规则或改为 LOG 规则验证。
  • 路由与反向路径过滤:
    • 路由可达性:ip r get 目标IP;netstat -s | grep “dropped because of missing route” 检查因无路由丢弃。
    • 反向路径过滤:cat /proc/sys/net/ipv4/conf//rp_filter;0 不验证,1 严格模式,2 松散模式;路径经过 NAT 或复杂多路径时,建议设为 0/2 并配合合理路由策略。

四 传输层与应用层检查

  • TCP 三次握手与队列:
    • 半连接队列:netstat -s | grep -i “SYNs to LISTEN sockets dropped” 或 dmesg | grep “TCP: drop open request”;增大 net.ipv4.tcp_max_syn_backlog
    • 全连接队列:listen backlog 与 net.core.somaxconn 共同限制;应用 backlog 过小或并发过高会出现 accept 队列溢出。
  • 分片重组与 MTU:
    • 分片超时/重组失败:netstat -s | egrep “fragments dropped after timeout|packet reassembles failed”;可调 net.ipv4.ipfrag_timenet.ipv4.ipfrag_high_thresh/low_thresh;若分片乱序严重,可临时将 ipfrag_max_dist=0 关闭安全距检查(需评估风险)。
    • MTU/路径 MTU:ifconfig/< 接口> 查看 MTU;路径存在 ICMP black hole 时启用 TCP MTU probing(net.ipv4.tcp_mtu_probing=1/2)。
  • 资源与连接数:top/vmstat 检查 CPU/内存/软中断 瓶颈;netstat -ant | awk ‘{ print $6} ’ | sort | uniq -c 观察 TIME_WAIT/CLOSE_WAIT/ESTABLISHED 分布;必要时优化应用(连接复用、合理超时、SO_REUSEADDR/SO_REUSEPORT)。

五 常用命令速查表

检查项 关键命令 判定要点
端到端连通 ping 目标IP -c 20;traceroute 目标IP 高丢包或特定跳数异常指向中间网络
接口与地址 ip a;route -n IP/掩码/网关与路由是否可达
协商与速率 ethtool ;ethtool -r speed/duplex/autoneg 一致;必要时重协商
驱动与队列 cat /proc/net/dev;ethtool -S RX dropped/overruns、rx_fifo 是否增长
队列容量 cat /proc/net/softnet_stat;sysctl net.core.netdev_max_backlog softnet_stat 第二列增长→增大 backlog
内核丢包点位 dropwatch -l kas;perf record -g -a -e skb:kfree_skb 精确定位 kfree_skb 位置
防火墙 iptables-save grep drop;iptables -L -nv
路由与 RPF ip r get 目标IP;cat /proc/sys/net/ipv4/conf//rp_filter 无路由或 RPF 策略导致丢弃
分片与 MTU netstat -s egrep "fragments

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


若转载请注明出处: Linux dropped故障排查
本文地址: https://pptw.com/jishu/756435.html
Linux dropped性能测试 Linux dropped网络优化

游客 回复需填写必要信息