温馨提示×

centos dropped如何解决掉包

小樊
43
2026-09-09 05:14:42
栏目: 智能运维

在 CentOS 中说到 “dropped(掉包 / 丢包)”,通常指 网络丢包。下面按常见原因 → 排查 → 解决给你一套实用思路。


一、先确认是不是真的丢包

1️⃣ ping 测试

ping -c 100 <目标IP>

看:

  • % packet loss
  • time 是否抖动严重

2️⃣ 查看系统丢包统计

ip -s link

ifconfig

关注:

  • RX dropped
  • TX dropped
  • errors

二、常见原因 & 对应解决办法

✅ 1. 网卡 / 驱动问题(最常见)

现象

  • RX dropped 很高
  • 网卡速率异常

解决

ethtool eth0

确认:

  • Speed: 1000Mb/s
  • Duplex: Full

如果不是:

ethtool -s eth0 speed 1000 duplex full autoneg off

更新驱动:

yum update kernel

✅ 2. 网卡队列 / 中断不均衡

现象

  • 高并发时丢包
  • 单核 CPU 100%

解决 开启多队列:

ethtool -L eth0 combined 8

中断均衡:

yum install irqbalance
systemctl enable irqbalance
systemctl start irqbalance

✅ 3. 防火墙 / conntrack 表满

现象

  • 突然大量 dropped
  • dmesg 有报错

查看:

dmesg | grep conntrack

解决:

sysctl -w net.netfilter.nf_conntrack_max=1048576

永久:

echo "net.netfilter.nf_conntrack_max=1048576" >> /etc/sysctl.conf
sysctl -p

✅ 4. 网络拥塞 / 带宽打满

排查

sar -n DEV 1

iftop

解决

  • 限速(tc)
  • 升级带宽
  • 优化应用并发

✅ 5. 内核参数不合理(高并发服务器)

cat >> /etc/sysctl.conf <<EOF
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.core.netdev_max_backlog = 50000
EOF

sysctl -p

✅ 6. 虚拟环境(KVM / 云服务器)

常见原因:

  • 宿主机限速
  • virtio 驱动问题

解决

  • 升级 virtio 驱动
  • 联系云厂商排查宿主机

三、快速排查顺序(推荐)

  1. ping 看丢包
  2. ip -s link 看哪端 dropped
  3. ethtool 看网卡状态
  4. dmesg 看内核报错
  5. sar / iftop 看流量
  6. 调整内核 & 网卡参数

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

请告诉我:

  • CentOS 版本(7 / 8 / Stream?)
  • 物理机还是云服务器?
  • 丢包发生在 内网还是外网
  • 是否有 RX dropped / TX dropped 截图或命令输出?

我可以给你针对性的参数和命令

0