39.3. 使用 SystemTap 监控网络数据包丢弃


Linux 中的网络堆栈可以丢弃由于各种原因的数据包。有些 Linux 内核包括一个追踪点 kernel.trace ("kfree_skb"),其跟踪数据包在哪里被丢弃。

dropwatch.stp SystemTap 脚本使用 kernel.trace ("kfree_skb") 来跟踪数据包丢弃;脚本总结了每 5 秒间隔丢弃数据包的位置。

先决条件

流程

  • 运行 dropwatch.stp 脚本:

    # stap  --example dropwatch.stp
    Copy to Clipboard Toggle word wrap

    运行 dropwatch.stp 脚本 15 秒的结果类似如下:

    Monitoring for dropped packets
    51 packets dropped at location 0xffffffff8024cd0f
    2 packets dropped at location 0xffffffff8044b472
    51 packets dropped at location 0xffffffff8024cd0f
    1 packets dropped at location 0xffffffff8044b472
    97 packets dropped at location 0xffffffff8024cd0f
    1 packets dropped at location 0xffffffff8044b472
    Stopping dropped packet monitor
    Copy to Clipboard Toggle word wrap
    注意

    要使数据包的位置更有意义,请参阅 /boot/System.map-$ (uname -r) 文件。此文件列出了每个功能的起始地址,允许您将 dropwatch.stp 脚本输出中的地址映射到特定功能名称。以下的 /boot/System.map-$ (uname -r) 文件的代码片段中,地址 0xffffffff8024cd0f 映射到功能 unix_stream_recvmsg,地址 0xffffffff8044b472 映射到功能 arp_rcv

    [...]
    ffffffff8024c5cd T unlock_new_inode
    ffffffff8024c5da t unix_stream_sendmsg
    ffffffff8024c920 t unix_stream_recvmsg
    ffffffff8024cea1 t udp_v4_lookup_longway
    [...]
    ffffffff8044addc t arp_process
    ffffffff8044b360 t arp_rcv
    ffffffff8044b487 t parp_redo
    ffffffff8044b48c t arp_solicit
    [...]
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat