Linux dropped怎么使用
导读:Linux dropped用法速览 概念与常见含义 在网络语境中,dropped通常指接口统计中的丢包计数,例如 ip/ifconfig 显示的 rx_dropped / tx_dropped。其含义是“已被接收或准备发送,但因资源不足或...
Linux dropped用法速览
概念与常见含义
- 在网络语境中,dropped通常指接口统计中的丢包计数,例如 ip/ifconfig 显示的 rx_dropped / tx_dropped。其含义是“已被接收或准备发送,但因资源不足或协议栈限制等原因未进一步处理”的数据包数量;某些驱动会将 L2 过滤丢弃也计入该计数,具体口径随驱动/内核版本而异。与之相关的 rx_missed_errors 常用于表示因设备缓存(Ring Buffer)满而未进入系统处理的包。理解这些差异有助于准确定位问题层面(驱动、内核、协议栈或防火墙)。
查看接口 dropped 计数
- 使用 ip 命令查看指定网卡:
- 查看概要:ip -s link show dev eth0
- 持续观察:watch -n 1 “ip -s -h link show dev eth0”
- 使用 ifconfig 查看(较老工具,部分新系统可能默认不装):
- ifconfig eth0
- 解读要点:关注 RX dropped / TX dropped 的增长趋势;若短时间内快速增长,通常意味着处理/排队能力不足或策略丢弃。可结合其他统计(如 errors、overruns)判断是否为硬件/驱动层瓶颈。
定位与处理步骤
- 判断是否为内核/协议栈丢弃
- 使用 dropwatch 观察内核丢包热点函数/位置(需 root):dropwatch -l kas
- 检查驱动与队列瓶颈
- 查看 Ring Buffer 与中断分布:ethtool -g eth0;ethtool -S eth0 | egrep “rx_missed|rx_over|tx_dropped”
- 若 overruns 增长明显,可能是中断/CPU 处理不及时或队列过小,可尝试调大队列、优化中断亲和/多队列。
- 检查防火墙/策略丢弃
- 查看规则命中:iptables -nvL -t filter;必要时为 DROP 规则增加日志前缀以便审计(见下节示例)。
- 抓包核对
- 在问题接口抓包:tcpdump -i eth0 -nn -vv
- 处理思路
- 驱动/硬件层:升级驱动、调大 RX/TX 队列、启用多队列/RSS、均衡中断;必要时更换更高规格网卡。
- 内核/协议栈:依据 dropwatch/ftrace 定位热点;优化 socket 缓冲、backlog、邻居表/ARP 等。
- 业务/策略:复核 iptables/nftables 规则,避免误丢弃;对 DROP 规则加日志,区分“策略丢弃”与“资源不足丢弃”。
防火墙丢弃规则的创建与记录
- 丢弃来自某 IP 的访问(示例):
- iptables -A INPUT -s 203.0.113.10 -j DROP
- 丢弃访问某端口(示例):
- iptables -A INPUT -p tcp --dport 22 -j DROP
- 记录被丢弃的数据包(便于排查)
- 新建日志链并限速记录,再丢弃:
- iptables -N LOGGING
- iptables -A INPUT -j LOGGING
- iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
- iptables -A LOGGING -j DROP
- 查看日志:tail -f /var/log/messages(日志前缀有助于快速筛选)。
- 新建日志链并限速记录,再丢弃:
- 规则维护
- 列出并带行号:iptables -L --line-numbers
- 按行号删除:iptables -D INPUT 3
- 按匹配条件删除:iptables -D INPUT -s 203.0.113.10 -j DROP
- 保存与恢复(视发行版而定):iptables-save > /etc/iptables/rules.v4;iptables-restore < /etc/iptables/rules.v4。
与 drop_caches 的区别
- 若你指的是 /proc/sys/vm/drop_caches,它与网络 dropped 无关,而是用于手动清理页面缓存、dentry/inode 等内核页缓存:
- 查看:cat /proc/sys/vm/drop_caches(常见输出 0 表示未清理)
- 清理:sync & & echo 1 > /proc/sys/vm/drop_caches(仅页缓存);echo 2 > …(dentry/inode);echo 3 > …(全部)
- 注意:仅在明确目的时执行,避免影响性能与稳定性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux dropped怎么使用
本文地址: https://pptw.com/jishu/747661.html
