26.5. SystemTap 脚本示例


您可以在 /usr/share/systemtap/examples 目录中找到与 SystemTap 安装一起分发的示例脚本。使用 stap 命令执行不同的 SystemTap 脚本:

追踪函数调用

您可以使用 para-callgraph.stp SystemTap 脚本追踪函数调用和函数返回。

# stap para-callgraph.stp <argument1 argument2>
Copy to Clipboard Toggle word wrap

该脚本采用两个命令行参数:

  • 正在追踪其 entry/exit 的功能名称。
  • 可选的触发器功能,用于在每个线程上启用或禁用追踪。

    只要触发器功能还没有退出,每个线程中的追踪将继续。

监控轮询应用程序

您可以使用 timeout.stp SystemTap 脚本来识别和监控哪些应用程序正在轮询。了解这一点,您可以跟踪不必要的或过度的轮询,这有助于确定 CPU 使用量和节能方面的改进。

# stap timeout.stp
Copy to Clipboard Toggle word wrap

此脚本跟踪每个应用使用 轮询 的次数,选择epollitimerfutexnanosleepSignal 系统调用。

跟踪每个进程的系统调用量

您可以使用 syscalls_by_proc.stp SystemTap 脚本查看哪些进程正在执行最多的系统调用。它显示前 20 个进程。

# stap syscalls_by_proc.stp
Copy to Clipboard Toggle word wrap
追踪网络套接字代码中调用的函数

您可以使用 socket-trace.stp SystemTap 脚本跟踪从内核的 net/socket.c 文件中调用的功能。这有助于您识别每个进程如何以详细方式在内核级别上与网络交互。

# stap socket-trace.stp
Copy to Clipboard Toggle word wrap
跟踪每个文件读或写的 I/O 时间

您可以使用 iotime.stp SystemTap 脚本监控每个进程读取或写入任何文件所需的时间。这有助于您确定系统上载入哪些文件。

# stap iotime.stp
Copy to Clipboard Toggle word wrap
跟踪 IRQ 和其他进程从任务中窃取周期

您可以使用 cycle_thief.stp SystemTap 脚本跟踪任务运行的时间以及其没有运行的时间。这帮助您识别哪些进程正在从任务中窃取周期。

# stap cycle_thief.stp -x pid
Copy to Clipboard Toggle word wrap

如需更多信息,请参阅 /usr/share/systemtap/examples 目录。

注意

您可以在 /usr/share/systemtap/examples/index.html 文件中找到有关 SystemTap 脚本的更多示例和信息。在 Web 浏览器中打开它,以查看所有可用的脚本及其描述的列表。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat