使用 er_kernel 实用程序可以执行内核和应用程序的分析。可以使用 –F 选项控制是否应跟踪应用程序进程并记录这些进程的数据。
使用 –F on 或 –F all 选项时,er_kernel 将记录所有应用程序进程以及内核上的实验。将跟踪在收集 er_kernel 实验时检测到的用户进程,并且为每个跟踪的进程创建一个子实验。
如果您以非 root 用户的身份运行 er_kernel,则可能不会记录许多子实验,因为不享有权限的用户通常无法读取有关其他用户进程的任何内容。
假定有足够的特权,那么用户进程数据也只在进程处于用户模式时才记录,并且只记录用户调用堆栈。每个跟踪的进程的子实验包含 kucycles 度量的数据。子实验使用 _process-name_PID_process-pid.1.er 格式命名。例如,某个在 sshd 进程上运行的实验的名称可能为 _sshd_PID_1264.1.er。
要只跟踪某些用户进程,可以使用 –F =regexp 指定正则表达式,以便记录名称或 PID 与正则表达式匹配的进程上的实验。
例如,er_kernel -F =synprog 将跟踪名为 synprog 的程序的进程。
请注意,对于 er_kernel 从 /proc 文件系统读取的进程名称,操作系统会将其截断,最多留下 15 个字符(外加零字节)。应该指定模式与这样截断的进程名称匹配。
有关正则表达式的信息,请参见 regexp(5) 手册页。
缺省情况下设置 -F off 选项,这样 er_kernel 不会执行用户进程分析。