0

0

sar -n DEV 显示 rx_drop/tx_drop 持续增长但业务无感知的阈值经验

冷漠man

冷漠man

发布时间:2026-01-24 17:18:01

|

888人浏览过

|

来源于php中文网

原创

rx_drop/tx_drop是sar -n DEV中网卡收发包被内核丢弃的计数器,单位包/秒;业务常无感知因丢的是冗余包、应用有重试、流量容忍高延迟或丢包率未达TCP重传阈值。

sar -n dev 显示 rx_drop/tx_drop 持续增长但业务无感知的阈值经验

rx_drop/tx_drop 是什么,为什么业务可能没感知

rx_droptx_dropsar -n DEV 输出中反映网卡收发包被内核丢弃的计数器,单位是「包/秒」。它们不等于网络不通或连接失败——很多丢包发生在协议高层(如 TCP 重传、应用层重试),或被静默吞掉(如 UDP 包无 ACK 机制)。业务无感知,往往因为:

  • 丢的是冗余包(如 TCP 重复 ACK、SACK 覆盖范围外的乱序包)
  • 应用使用重试逻辑(HTTP 客户端、gRPC、Kafka 生产者等自带重试)
  • 流量本身低频、容忍高延迟(如定时上报、日志采集)
  • 丢包率远低于 TCP 重传触发阈值(通常需连续丢 3 个 ACK 或 RTO 超时)

多少算“持续增长”?看 delta 而非绝对值

sar -n DEV 1 5 观察 5 秒内每秒变化更有效。重点关注:
- rx_drop 持续 > 100 pkt/s(千兆网卡)或 > 1000 pkt/s(万兆)且稳定不回落
- 同一设备上 rx_drop 增速明显高于 rx_packets 增速(例如 rx_packets 增 5%,rx_drop 增 20%)
- tx_drop 非零且随发包量线性上升(说明不是偶发队列溢出,而是驱动或硬件过滤逻辑异常)
注意:sar 默认采样间隔 1 秒,若用 10 秒间隔,小幅度持续丢包会被平滑掩盖。

常见真实原因和排查路径

别急着调 net.core.rmem_max,先快速排除高频根因:

  • 网卡 offload 异常:执行 ethtool -k rx offload 是否开启;某些旧驱动在 LRO/GRO 启用时解析错误导致批量丢包
  • 防火墙规则过载:检查 iptables -t raw -L -vnft list ruleset,匹配计数突增的链可能隐式 drop
  • 软中断瓶颈:运行 cat /proc/interrupts | grep ,确认单个 CPU 上 irq 过载(> 5000/s),再看 mpstat -P ALL 1 中 %soft 占比是否长期 > 30%
  • ring buffer 溢出:用 ethtool -S rx_fifo_errorsrx_missed_errors,非零即说明硬件接收队列已满

阈值经验不是固定数字,而是结合速率与比例判断

没有通用“安全阈值”,但可参考以下组合条件:

koly.club
koly.club

一站式社群管理工具

下载
  • rx_drop / rx_packets > 0.1% 且持续 5 分钟以上 → 值得介入
  • rx_drop 绝对值 > 500 pkt/s 且伴随 softirq CPU 升高 → 很可能影响新连接建立
  • tx_drop > 0 且 tx_aborted_errorstx_carrier_errors 同步上升 → 物理链路或交换机端口问题
  • 同一宿主上多个容器/进程共用网卡时,单个 pod 的 rx_drop 突增但宿主机总量平稳 → 可能是 cgroup net_cls 限速或 ebpf 程序误过滤
真正麻烦的不是数字本身,是它背后反映的资源争抢或配置漂移——比如某次内核升级后默认启用 GRO,而业务恰好大量发送小包,GRO 合并失败率升高却无告警。这类问题不会立刻炸,但会在高并发压测时突然暴露。

相关专题

更多
kafka消费者组有什么作用
kafka消费者组有什么作用

kafka消费者组的作用:1、负载均衡;2、容错性;3、广播模式;4、灵活性;5、自动故障转移和领导者选举;6、动态扩展性;7、顺序保证;8、数据压缩;9、事务性支持。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

167

2024.01.12

kafka消费组的作用是什么
kafka消费组的作用是什么

kafka消费组的作用:1、负载均衡;2、容错性;3、灵活性;4、高可用性;5、扩展性;6、顺序保证;7、数据压缩;8、事务性支持。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

149

2024.02.23

rabbitmq和kafka有什么区别
rabbitmq和kafka有什么区别

rabbitmq和kafka的区别:1、语言与平台;2、消息传递模型;3、可靠性;4、性能与吞吐量;5、集群与负载均衡;6、消费模型;7、用途与场景;8、社区与生态系统;9、监控与管理;10、其他特性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

202

2024.02.23

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

394

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

574

2023.08.10

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

392

2023.11.09

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

416

2023.11.14

HTTP 503错误解决方法
HTTP 503错误解决方法

HTTP 503错误表示服务器暂时无法处理请求。想了解更多http错误代码的相关内容,可以阅读本专题下面的文章。

2079

2024.03.12

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

0

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Linux网络安全之防火墙技术汇总
Linux网络安全之防火墙技术汇总

共31课时 | 3万人学习

Node.js 教程
Node.js 教程

共57课时 | 9.2万人学习

CSS3 教程
CSS3 教程

共18课时 | 4.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号