首页主机资讯Linux dropped怎么查

Linux dropped怎么查

时间2025-11-24 10:58:03发布访客分类主机资讯浏览836
导读:Linux dropped 排查与定位 一、快速定位思路 明确方向:先看网卡层(物理/驱动)是否有丢包,再看内核网络栈(协议栈、netfilter、socket 缓冲)是否丢包,最后落到应用层(读取是否及时、UDP 无连接特性)。 关注计...

Linux dropped 排查与定位

一、快速定位思路

  • 明确方向:先看网卡层(物理/驱动)是否有丢包,再看内核网络栈(协议栈、netfilter、socket 缓冲)是否丢包,最后落到应用层(读取是否及时、UDP 无连接特性)。
  • 关注计数器的变化:用对比法(相隔10–30秒)观察是否持续增长,避免只看一次性的历史累计值。
  • 结合负载与基线:CPU、软中断、内存、带宽是否与平时差异明显,先排除资源瓶颈。

二、查看网卡层 dropped

  • 查看接口统计(推荐):
    • ip:ip -s -s link show < iface> (关注 RX/TX dropped
    • 传统:ifconfig < iface> (关注 RX dropped / TX dropped
    • 示例:
      ip -s -s link show eth0
      RX: bytes packets errors dropped overrun mcast
           377786943 473945 0 12 0 0
      TX: bytes packets errors dropped carrier collsns
           266024587 377467 0 0 0 0
      
  • 查看驱动/NIC 私有计数(能细化到队列、丢弃原因):
    ethtool -S <
        iface>
         | egrep 'drop|discard|fifo|over|miss'
    
  • 查看内核网络设备总览:
    cat /proc/net/dev
    
  • 若 RX dropped 增长而 ifconfig 的 overruns=0,可能是队列/协议栈侧丢弃;若 overruns 增长,多与网卡 ring buffer或驱动/中断相关。可结合 ethtool -g < iface> 查看/调整 rx/tx ring 大小(需谨慎)。

三、查看协议栈与应用层丢包

  • 协议栈统计(按协议定位):
    netstat -s              # 总览
    netstat -s -u          # 只看 UDP
    netstat -s -t          # 只看 TCP
    
    • UDP 关注:packet receive errors(常见与 socket 缓冲不足、应用读取慢有关)、receive buffer errors
    • TCP 关注:segments retransmittedfailed connection attempts 等。
  • 内核丢包事件追踪(定位具体函数/位置):
    • dropwatch(直观打印丢包位置):
      dropwatch -l kas
      dropwatch>
       start
      # Ctrl-C 停止,查看函数栈
      
      输出示例中出现 nf_hook_slow 多为 netfilter 规则丢弃;出现 tcp_v4_rcv 等多为协议栈处理路径。
    • perf(更灵活,可抓堆栈):
      sudo perf record -g -a -e skb:kfree_skb
      sudo perf script
      
  • 防火墙/策略丢包核对:
    sudo iptables-save | grep -i drop
    sudo iptables -L INPUT -nv    # 观察 pkts 是否增长
    
  • 半连接队列溢出迹象:
    dmesg | grep -i "TCP: drop open request"
    netstat -ant | awk '$6 ~ /SYN_RECV/ {
    count++}
     END {
    print count}
        '
    
    SYN_RECV 明显增多,可能是 SYN Floodtcp_max_syn_backlog 偏小。

四、常见现象与处理要点

  • 现象:RX dropped 增长,RX errors/overruns=0
    处理:多为内核/队列/协议栈侧丢弃,优先用 dropwatch/perf 定位;检查 netfilter/iptables 规则、应用读取是否及时、socket 缓冲是否偏小。
  • 现象:overruns 增长
    处理:多与网卡 ring buffer或中断/驱动相关;可尝试 ethtool -g 适度增大 rx ring,并检查中断绑定/多队列(RSS)是否均衡。
  • 现象:UDP packet receive errors 增长
    处理:常见为应用消费慢socket 接收缓冲不足;优化应用读取路径、增大接收缓冲(如 net.core.rmem_maxnet.core.rmem_default),并控制发送速率。
  • 现象:dmesg 提示 TCP 半连接丢弃
    处理:排查 SYN Flood,必要时调大 tcp_max_syn_backlog、启用 syncookies 等防护策略。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux dropped怎么查
本文地址: https://pptw.com/jishu/754249.html
Linux dropped怎么备份 Linux dropped是什么

游客 回复需填写必要信息