第 41 章 使用 SystemTap 监控网络活动

在安装 systemtap-testsuite 软件包时,您可以使用 /usr/share/systemtap/testsuite/systemtap.examples/ 目录中提供的实用示例 SystemTap 脚本来监控和调查您系统的网络活动。

41.1. 使用 SystemTap 分析网络活动

您可以使用 nettop.stp 示例 SystemTap 脚本来对网络活动进行性能分析。脚本会跟踪系统中生成网络流量的进程,并提供有关每个进程的以下信息:

PID
列出进程的 ID。
UID
用户 ID。用户 ID 0 代表 root 用户。
DEV
进程用于发送或接收数据的以太网设备(如 eth0、eth1)。
XMIT_PK
进程传输的数据包数。
RECV_PK
进程接收的数据包数。
XMIT_KB
进程发送的数据量(以 KB 为单位)。
RECV_KB
服务接收的数据量(以 KB 为单位)。

先决条件

流程

  • 运行 nettop.stp 脚本:

    # stap  --example nettop.stp

    nettop.stp 脚本每 5 秒提供网络配置集抽样。

    nettop.stp 脚本的输出类似如下:

    [...]
      PID   UID DEV     XMIT_PK RECV_PK XMIT_KB RECV_KB COMMAND
        0     0 eth0          0       5       0       0 swapper
    11178     0 eth0          2       0       0       0 synergyc
      PID   UID DEV     XMIT_PK RECV_PK XMIT_KB RECV_KB COMMAND
     2886     4 eth0         79       0       5       0 cups-polld
    11362     0 eth0          0      61       0       5 firefox
        0     0 eth0          3      32       0       3 swapper
     2886     4 lo            4       4       0       0 cups-polld
    11178     0 eth0          3       0       0       0 synergyc
      PID   UID DEV     XMIT_PK RECV_PK XMIT_KB RECV_KB COMMAND
        0     0 eth0          0       6       0       0 swapper
     2886     4 lo            2       2       0       0 cups-polld
    11178     0 eth0          3       0       0       0 synergyc
     3611     0 eth0          0       1       0       0 Xorg
      PID   UID DEV     XMIT_PK RECV_PK XMIT_KB RECV_KB COMMAND
        0     0 eth0          3      42       0       2 swapper
    11178     0 eth0         43       1       3       0 synergyc
    11362     0 eth0          0       7       0       0 firefox
     3897     0 eth0          0       1       0       0 multiload-apple