Linux dropped 定位与解决方案
一 快速判断与分层定位
| 层面 | 典型现象 | 关键命令 | 常见根因 | 处理要点 |
|---|---|---|---|---|
| 物理/链路 | ping 高丢包、traceroute 某跳异常 | ping、traceroute、ip a、route -n | MTU/路由异常、链路不稳定 | 校正 MTU、核对路由、排除物理链路问题 |
| 网卡驱动/Ring Buffer | ifconfig 显示 RX/TX dropped 增长;ethtool -S 见 rx_fifo 增长 | ifconfig、ethtool -S、ethtool -g/-G | Ring Buffer 不足、中断/CPU 处理不及时 | 增大 Ring Buffer、检查中断与 CPU 亲和、必要时降速/优化中断分布 |
| 内核 backlog | /proc/net/softnet_stat 某核第二列增长 | cat /proc/net/softnet_stat | netdev_max_backlog 不足 | 调大 netdev_max_backlog、提升软中断处理能力 |
| 分片重组 | netstat -s 见 fragments dropped after timeout / reassembles failed | netstat -s、dmesg | 分片超时/内存阈值/乱序 | 调整 ipfrag_time / ipfrag_high_thresh / ipfrag_low_thresh / ipfrag_max_dist |
| 连接跟踪 | dmesg 出现 “nf_conntrack: table full, dropping packet” | dmesg、conntrack -L、/proc/sys/net/netfilter/nf_conntrack_* | nf_conntrack 表满 | 增大 nf_conntrack_max / nf_conntrack_buckets、缩短超时、优化规则 |
| 防火墙/安全软件 | 规则误拦截、业务偶发断连 | iptables -S、nft list ruleset、journalctl | DROP/REJECT 规则、策略冲突 | 校正规则、临时停用验证、审计日志 |
| 资源瓶颈 | CPU/内存/带宽占用高、软中断飙高 | top、vmstat、iostat、mpstat -P ALL 1 | 资源竞争、磁盘 IO 高阻塞网络线程 | 限流/扩容、中断/队列优化、调优调度与 I/O |
二 关键命令与阈值示例
三 常见场景与处置要点
四 参数优化与变更建议
五 监控与验证