在 CentOS 中看到 “dropped”(丢包)通常出现在网络相关场景,比如:
ifconfig / ip -s link 里 RX dropped / TX droppednetstat -s 中的 packet receive errors / droppeddmesg 中的 packet dropped下面给你一套快速定位 + 常见解决方案。
ip -s link
或
ifconfig eth0
重点关注:
RX droppedTX dropped现象:高并发 / 大流量时 dropped 增加
解决:
ethtool -g eth0
如果是:
RX: 256
TX: 256
可以调大:
ethtool -G eth0 rx 4096 tx 4096
现象:单核软中断高,其他核空闲
解决:
cat /proc/interrupts | grep eth0
开启 IRQ 均衡:
systemctl start irqbalance
systemctl enable irqbalance
或手动绑核(高级)。
现象:
dmesg | grep conntrack
或
cat /proc/sys/net/netfilter/nf_conntrack_count
解决:
sysctl -w net.netfilter.nf_conntrack_max=1048576
并加到 /etc/sysctl.conf
现象:大量连接时 dropped
解决:
ulimit -n
调大:
* soft nofile 65535
* hard nofile 65535
检查:
iptables -L -n -v
nft list ruleset
可能是:
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
请告诉我:
我可以直接给你针对性一键优化方案。