42.4. 使用 SystemTap 监控轮询应用程序

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

先决条件

流程

  • 运行 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