温馨提示×

centos dropped如何快速解决

小樊
41
2026-09-12 02:19:18
栏目: 智能运维

在 CentOS 中看到 “dropped”(丢包)通常出现在网络相关场景,比如:

  • ifconfig / ip -s linkRX dropped / TX dropped
  • netstat -s 中的 packet receive errors / dropped
  • dmesg 中的 packet dropped
  • 监控工具(zabbix / prometheus / nload)报警 dropped

下面给你一套快速定位 + 常见解决方案


一、先确认 dropped 发生在哪一层

1️⃣ 看网卡统计

ip -s link

ifconfig eth0

重点关注:

  • RX dropped
  • TX dropped

二、常见原因 & 快速解决办法

✅ 1. 网卡缓冲区不足(最常见)

现象:高并发 / 大流量时 dropped 增加

解决

ethtool -g eth0

如果是:

RX: 256
TX: 256

可以调大:

ethtool -G eth0 rx 4096 tx 4096

✅ 2. 中断不平衡(多队列网卡)

现象:单核软中断高,其他核空闲

解决

cat /proc/interrupts | grep eth0

开启 IRQ 均衡:

systemctl start irqbalance
systemctl enable irqbalance

或手动绑核(高级)。


✅ 3. 连接跟踪表满(conntrack dropped)

现象

dmesg | grep conntrack

cat /proc/sys/net/netfilter/nf_conntrack_count

解决

sysctl -w net.netfilter.nf_conntrack_max=1048576

并加到 /etc/sysctl.conf


✅ 4. 文件描述符 / 端口耗尽

现象:大量连接时 dropped

解决

ulimit -n

调大:

* soft nofile 65535
* hard nofile 65535

✅ 5. 防火墙 / 安全策略丢包

检查

iptables -L -n -v
nft list ruleset

可能是:

  • DROP 规则
  • rate-limit
  • fail2ban

✅ 6. 内核参数不合理(TCP 队列)

sysctl net.core.netdev_max_backlog
sysctl net.core.somaxconn

建议:

net.core.netdev_max_backlog=16384
net.core.somaxconn=65535

执行:

sysctl -p

三、快速排查命令汇总(直接复制)

ip -s link
ethtool -S eth0 | grep -i drop
dmesg | grep -i drop
netstat -s | grep -i drop
ss -s

四、如果你愿意,我可以更精准帮你

请告诉我:

  1. CentOS 版本(6 / 7 / 8 / Stream)
  2. dropped 出现在哪(ifconfig / zabbix / 应用日志)
  3. 是否高并发 / 大流量
  4. 网卡型号(ethtool -i eth0)

我可以直接给你针对性一键优化方案

0