温馨提示×

为啥centos有dropped

小樊
40
2026-09-30 07:55:23
栏目: 智能运维

在 CentOS(以及其它 Linux 系统)里,网络统计中常见的 dropped,一般指的是数据包被丢弃。不同地方看到 “dropped” 含义不完全一样,下面按常见场景给你捋一下。


1. ifconfig / ip -s link 里的 RX dropped

这是网卡接收方向的丢包计数。

可能原因:

  • 环形缓冲区(ring buffer)满:瞬时流量太大,内核来不及处理
  • 网卡 offload 问题:如 GRO/LRO 异常
  • 非本机 MAC 的包被过滤(某些模式)
  • 驱动或固件 bug
  • 内存不足 / softirq 处理不过来

排查思路:

ethtool -S eth0 | grep -i drop
ethtool -g eth0        # 查看 ring buffer
ethtool -G eth0 rx 4096  # 调大(示例)

2. netstat -s 里的 dropped

例如:

  • packet receive errors
  • TCPBacklogDrop
  • ListenDrops

常见原因:

  • backlog 满(net.core.netdev_max_backlog)
  • accept 队列满(net.core.somaxconn)
  • TCP 半连接/全连接队列溢出
  • 应用处理太慢

典型调优:

sysctl -w net.core.somaxconn=1024
sysctl -w net.core.netdev_max_backlog=2000

3. iptables / nftables 的 dropped

这是防火墙主动丢弃:

  • 规则写了 DROP
  • 默认策略是 DROP

查看:

iptables -L -v -n

4. tcpdump 里看不到,但系统说 dropped

说明内核丢的,不是抓包工具丢的。


5. 应用层“dropped”

比如 Nginx、HAProxy:

  • 连接数超限
  • 超时
  • 负载过高

一句话总结

CentOS 里的 “dropped” 本质是:系统/网卡/防火墙在某一步扛不住或主动拒绝,把包扔了。

如果你能贴一下具体是在哪看到的 dropped(命令或截图),我可以直接帮你定位是哪一类问题。

0 踩