42.4. 使用 SystemTap 监控轮询应用程序
您可以使用 timeout.stp SystemTap 脚本来识别和监控哪些应用正在轮询。这样,您可以跟踪不必要的或过度的轮询,这有助于在 CPU 使用量和节能方面得到改进。
先决条件
- 如安装 Systemtap 所述,已安装了 SystemTap。
流程
运行 timeout.stp 脚本:
# stap --example timeout.stp
此脚本将跟踪每个应用程序随着时间的推移使用以下系统调用的次数:
-
poll
-
select
-
epoll
-
itimer
-
futex
-
nanosleep
-
signal
在这个示例输出中,您可以看到使用哪个进程调用哪个进程以及次数。
uid | poll select epoll itimer futex nanosle signal| process 28937 | 148793 0 0 4727 37288 0 0| firefox 22945 | 0 56949 0 1 0 0 0| scim-bridge 0 | 0 0 0 36414 0 0 0| swapper 4275 | 23140 0 0 1 0 0 0| mixer_applet2 4191 | 0 14405 0 0 0 0 0| scim-launcher 22941 | 7908 1 0 62 0 0 0| gnome-terminal 4261 | 0 0 0 2 0 7622 0| escd 3695 | 0 0 0 0 0 7622 0| gdm-binary 3483 | 0 7206 0 0 0 0 0| dhcdbd 4189 | 6916 0 0 2 0 0 0| scim-panel-gtk 1863 | 5767 0 0 0 0 0 0| iscsid