Oracle® Developer Studio 12.5:性能分析器

退出打印视图

更新时间: 2016 年 6 月
 
 

分析内核和用户进程

使用 er_kernel 实用程序可以执行内核和应用程序的分析。可以使用 –F 选项控制是否应跟踪应用程序进程并记录这些进程的数据。如果使用 er_kernel 产生负载但未指定 –F,则会跟踪负载。如果指定了 –F,则会在负载与 –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 不会执行用户进程分析。


注 -  er_kernel-F 选项不同于 collect-F 选项。collect -F 命令用于只跟踪那些由命令行中指定的目标创建的进程;而 er_kernel -F 用于跟踪当前在系统上运行的所有进程。