bpftrace 统计丢弃原因
bpftrace 统计丢弃原因
bpftrace -e 'tracepoint:skb:kfree_skb { @[args->reason] = count(); }'
# 旧内核无 reason 字段时: bpftrace -e 'kprobe:kfree_skb { @[kstack(5)] = count(); }'丢包原因枚举随内核版本演进; 输出量大时限定时间窗或加过滤条件。
怀疑协议栈内部丢包时, 追踪 skb:kfree_skb 丢弃原因, 直接定位丢在哪个子系统。
bpftrace -e 'tracepoint:skb:kfree_skb { @[args->reason] = count(); }'
# 旧内核无 reason 字段时: bpftrace -e 'kprobe:kfree_skb { @[kstack(5)] = count(); }'