39.5. SystemTap 脚本的有用示例


随 SystemTap 的安装一起分发的示例脚本可在 /usr/share/systemtap/examples 目录中找到。

您可以使用 stap 命令执行不同的 SystemTap 脚本:

追踪函数调用

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

# stap para-callgraph.stp argument1 argument2

脚本接受两个命令行参数:您要跟踪其进入/退出的函数的名称。可选的触发器功能,用于在每个线程上启用或禁用追踪。只要触发器功能还没有退出,每个线程中的追踪将继续。

监控轮询应用程序

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

# stap timeout.stp

此脚本跟踪每个应用程序随着时间的推移,使用 pollselectepollitimerfutexnanosleepSignal 系统调用的次数

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

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

# stap syscalls_by_proc.stp
追踪网络套接字代码中调用的函数

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

# stap socket-trace.stp
跟踪每个文件读或写的 I/O 时间

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

# stap iotime.stp
跟踪 IRQ 和从任务中窃取周期的其它进程

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

# stap cycle_thief.stp -x pid
注意

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

其他资源

  • /usr/share/systemtap/examples 目录
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.