在 CentOS 里看到 dropped(丢包)通常出现在网络或系统资源层面。要“处理”它,先要分清在哪里看到的 dropped,再针对性解决。下面按常见场景给你一个排查与处理清单。
ip -s link
# 或
ifconfig
看到类似:
RX packets ... dropped: 123
TX packets ... dropped: 0
ethtool -S eth0 | grep -i drop
dmesg | grep conntrack
或
cat /proc/sys/net/netfilter/nf_conntrack_count
cat /proc/sys/net/netfilter/nf_conntrack_max
netstat -s | grep -i drop
ss -s
原因
处理
# 增大网卡 ring buffer
ethtool -G eth0 rx 4096 tx 4096
# 开启多队列
ethtool -L eth0 combined 8
# 中断均衡
irqbalance
systemctl enable irqbalance
现象
nf_conntrack: table full, dropping packet
处理
sysctl -w net.netfilter.nf_conntrack_max=655360
sysctl -w net.netfilter.nf_conntrack_tcp_timeout_time_wait=30
写入配置:
/etc/sysctl.d/99-conntrack.conf
处理
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216"
sysctl -w net.ipv4.tcp_wmem="4096 65536 16777216"
sysctl -w net.core.netdev_max_backlog=16384
sysctl -w net.core.somaxconn=65535
top
# 看 si 列
处理
ip -s link → 看哪个网卡 droppedethtool -S eth0 | grep dropdmesg | grep dropnetstat -s | grep drop你可以补充:
我可以直接给你一套可复制的配置。