40.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