curt 命令

用途

从跟踪生成 CPU 使用率报告。

语法

curt -我 输入文件 [-o outputfile] [-n gensymsfile] [- trcnmfile] [- pidnamefile] [-f 时间戳记] [-我 时间戳记] [- PURR] [-eHPSP] [-@ {ALL | WparList}]

描述

curt 命令将 AIX® 跟踪文件作为输入,并生成与处理器 (CPU) 利用率和进程 /thread/pthread 活动相关的大量统计信息。 如果处理器时钟正确同步,那么此命令将同时使用单处理器和多处理器 AIX 跟踪。

使用 trace 命令收集的 AIX 跟踪文件应至少包含跟踪事件 (跟踪挂钩) ,如下所示:
  HKWD_KERN_SVC, HKWD_KERN_SYSCRET, HKWD_KERN_FLIH, HKWD_KERN_SLIH,
  HKWD_KERN_SLIHRET, HKWD_KERN_DISPATCH, HKWD_KERN_RESUME, HKWD_KERN_IDLE,
  HKWD_SYSC_FORK, HKWD_SYSC_EXECVE, HKWD_KERN_PIDSIG, HKWD_SYSC__EXIT
  HKWD_SYSC_CRTHREAD, HKWD_KERN_INITP, HKWD_NFS_DISPATCH, HKWD_CPU_PREEMPT,
  HKWD_DR, HKWD_KERN_PHANTOM_EXTINT, HKWD_RFS4_VOPS, HHKWD_RFS4_VFSOPS, HKWD_RFS4_MISCOPS, HKWD_RFS4,
  HKWD_KERN_HCALL, HKWD_WPAR,
  HKWD_PTHREAD_VPSLEEP, HKWD_PTHREAD_GENERAL

这些是 curt 要查看并计入其统计信息的事件:

这意味着,如果您在 trace 命令上指定 -j 标志,必须为 curt 包含这些数字:
-j 100,101,102,103,104,106,10C,119,134,135,139,200,210,215,38F,419,465,47F,488,489,48A,48D,492,4C9,605,609
或者,您可以使用 -J curt 作为代替。
要使 PTHREAD 挂钩进入跟踪,必须使用已检测的 libpthreads.a来执行 pthread 应用程序。 实现此目的的一种方法是启动您的应用程序之前,执行以下三步(KornShell 语法):
  1. mkdir /temp.lib; cd /temp.lib
  2. ln -s /usr/ccs/lib/perf/libpthreads.a
  3. export LIBPATH=$PWD:$LIBPATH
要激活用户 pthread 检测,必须将检测的库目录放在 LIBPATH 中; 可以将 temp.lib 目录放在任何位置。

标志

描述
-i 输入文件 指定要分析的输入 AIX 跟踪文件。
-o 输出文件 指定输出文件(缺省值为 stdout)。
-n 生成符号文件 指定由 gensyms 生成的名称文件。
-m trcnmfile 指定由 trcnm 指定的 names 文件。
-一个 pid名称文件 指定 PID 以处理映射文件。
-f 时间戳记 时间戳记秒数时开始处理跟踪。
-l 时间戳记 时间戳记秒数时停止处理跟踪。
-r 咕噜 使用 PURR 寄存器计算 CPU 时间。
-e 输出系统调用和 pthread 调用所用的时间信息。
-h 显示用法文本(该信息)。
-p 输出详细的进程信息。
-s 输出有关由系统调用返回的错误信息。
-t 输出详细的线程信息。
-P 输出详细的 pthread 信息。
-@ 控制将 工作负载分区 信息添加到 curt 报告中。
可以下列某种格式使用 -@ 标志:
-@
输出 工作负载分区的摘要。 摘要包括各种执行方式下 工作负载分区 的处理器使用情况。 此外,还会针对列出的进程显示 WPAR 名称,这些进程按进程,线程或 pthread 汇总处理器使用情况。
-@ 全部
系统和所有 工作负载分区的输出报告。 报告由包含整个系统的 WPAR 名称或 SYSTEM 的三行定界。
-@ WparList
WparList 参数指定的 工作负载分区 的输出报告,这是 WPAR 名称的逗号分隔列表。 报告由包含 WPAR 名称的三行定界。

如果 trace 进程名表格不准确,或者如果期望更多描述名,请使用 -a 标志以指定 PID 来处理名称映射文件。 这是一个文件,其中的行构成为:一个进程标识符(十进制),后跟一个空格,再后跟一个 ASCII 字符串,用作该进程的名称。

如果输入 AIX-trace 文件是在指定了 -n 标志的情况下创建的, curt 将使用该地址/名称表将 System Call 和 Slih 地址解析为名称 (如果 您未在 curt 命令行上指定 -m-n 标志)。

如果输入 AIX-trace 文件是在 工作负载分区中创建的,那么 curt 命令将打印 WPAR 报告。 这种情况下不允许使用 -@ 标志。

报告内容

curt 报告包含以下信息:

Curt 和跟踪信息

curt 报告中的第一行给出 curt 程序执行的时间以及用来调用 curt 的命令行。 以下是有关 curt正在处理的 AIX 跟踪文件的信息: 名称,大小,创建日期以及用于收集跟踪文件的命令。

如果使用了 -r PURR 选项并且跟踪文件包含 PURR 寄存器,那么将打印行 PURR was used to calculate CPU times

System Summary
报告的第一大节是“系统摘要”。 该节描述了系统(所有处理器)在各种执行方式下总共使用的时间。 这些方式如下:
应用程序
在“用户”(非特权)方式下所有处理器所用的时间总和。
SYSCALL
所有处理器进行“系统调用”所用时间的总和。 这是处理器用来在内核代码下执行以提供用户进程所直接要求的服务的那部分时间。
HCALL
所有处理器进行“(系统)管理程序调用”所用时间的总和。 这是处理器用来在(系统)管理程序代码中执行以提供内核直接请求的服务的那部分时间。
KPROC
执行内核进程,而不是 IDLE 进程和 NFS 进程的所有处理器所用的时间总和。 这是处理器用来执行特别创建的只执行内核代码的可分派进程所用去的那部分时间。
NFS
执行 NFS 操作的所有处理器所用的时间总和。 针对 NFS V2/V3 的 NFS 操作以 RFS_DISPATCH_ENTRY 开始,以 RFS_DISPATCH_EXIT 子挂钩结束。 针对 NFS V4 的 NFS 操作以 start 开始,以 donedone error 结束。
FLIH
所有处理器在 FLIH(第一级中断处理程序)下所用时间的总和。
SLIH
所有处理器在 SLIH(第二级中断处理程序)下所用时间的总和。
DISPATCH
所有处理器在 AIX 分派代码中花费的时间总和。 该总和包含用于分派所有线程(即包含对空闲进程的分派)的时间。
IDLE DISPATCH
所有处理器在 AIX 分派代码中所花费的时间总和,其中要分派的进程是 IDLE 进程。 由于 DISPATCH 类别包含空闲分派类别的时间,因此不会单独添加空闲分派类别的时间以计算 CPU 繁忙时间或 TOTAL。
CPU 忙碌时间
所有处理器在执行应用程序、系统调用、kproc、flih、slih 和分派方式中所用时间的总和。
IDLE
所有处理器执行空闲进程所用时间的总和。
总计
CPU 忙碌时间和空闲的总和。 此数字称为 总处理时间
标记为 processing total time (msec) 的列给出相应处理类别的总时间 (以毫秒为单位)。 标注为 percent total time 的列给出了处理总时间 (占 TOTAL 处理总时间的百分比)。 标记为 percent busy time 的列给出了处理总时间 (占 CPU 忙碌时间处理总时间的百分比)。 Avg. Thread Affinity 是将线程分派到上次执行该线程的同一处理器的概率。

总计物理 CPU 时间(msec)是 CPU 正在运行的实际时间(非先占的)。 物理 CPU 百分比给出了物理 CPU 时间作为总时间的百分比。

注:WPAR 报告中,系统摘要信息标注为 WPAR 摘要
系统应用程序摘要
在“系统总结”之后是“系统应用程序总结”,它详细描述了在用户方式下所用的时间。 本节描述所有进程(在所有处理器上)执行 libpthread 的各个部分使用的时间。
PTHREAD
所有 pthreads 在跟踪的 libpthread 操作中所使用时间的总和。
PDISPATCH
所有在 libpthread 分派代码下所有使用时间的总和。
PIDLE
所有 pthread 在 libpthread vp_sleep 代码下所使用时间的总和。
OTHER
在跟踪的 libpthread 操作之外,所有线程在用户方式下所使用的时间的总和。
APPLICATION 时间
所有处理器在用户方式下所使用时间的总和。
标注为 processing total time (msec) 的列给出了对应处理类别的总时间 (以毫秒为单位)。 标记为 percent total time 的列提供了处理总时间 (以 "系统摘要" 的 TOTAL 处理总时间的百分比表示)。 标记为 percent application time 的列给出了处理总时间 (以 APPLICATION 处理总时间的百分比表示)。 Avg. Pthread Affinity 是将 pthread 分派到上次执行该 pthread 的同一线程的概率。
注:WPAR 报告中,系统应用程序摘要信息标注为 WPAR 应用程序摘要
s 摘要
当您指定 -@ 标志时,将生成报告的 WPAR 摘要。 以下 工作负载分区的系统和系统应用程序信息 (在摘要中显示为列标题) 详细描述了在所有 工作负载分区 中花费的时间:
1appli
WPAR 在用户方式 (非特权) 下所耗用的总进程时间百分比。
syscall
WPAR 执行系统调用所耗用的总进程时间百分比。
hcall
WPAR 执行系统管理程序调用所耗用的总进程时间百分比。
kproc
WPAR 运行内核进程调用所耗用的总进程时间百分比。
nfs
WPAR 运行 NFS 操作所耗用的总进程时间的百分比。
flih
WPAR 在第一级中断处理程序中所花费的总进程时间百分比。
slih
WPAR 在第二级中断处理程序中耗用的总进程时间的百分比。
total
WPAR所耗用的总进程时间百分比。
total(msec)
WPAR使用的处理器时间总和 (以毫秒计)。
WPAR
WPAR 名称。
注: WPAR 摘要仅在整体系统报告中生成。
每个处理器摘要

“系统应用程序摘要”之后是“每个处理器摘要”。包含的信息基本相同,但以逐个处理器为基础进行停顿。 在为 "系统摘要" 提供的描述中,短语 sum of times by all processor 可替换为 time by this processor。 进程分派总数是指 AIX 在此处理器上分派任何非 IDLE 进程的次数,而空闲分派总数提供 IDLE 进程分派的计数。

Total Physical CPU time (msec) 是处理器运行的实际时间 (未抢占)。 Physical CPU percentage 提供物理 CPU 时间 (以总时间的百分比表示)。

Physical processor affinity 是在上次执行逻辑处理器的同一物理处理器上分派该逻辑处理器的概率。 先占的总数是虚拟处理器在物理 CPU 上再发送的次数。

Total number of H_CEDE 是此处理器执行的 H_CEDE 管理程序调用数; with preeemption 指示导致抢占的 H_CEDE 调用数。

Total number of H_CONFER 是此处理器执行的 H_CONFER 系统管理程序调用数; with preeemption 指示导致抢占的 H_CONFER 调用数。

注: 不会在 WPAR 报告中生成每个处理器的摘要。
每个处理器应用程序摘要

“每个处理摘要”之后是“每个处理器应用程序摘要”,包含的信息与“系统应用程序摘要”基本相同,但会逐个处理器停顿。

Total number of pthread dispatches 是指 libpthread 在此处理器上分派任何 pthread 的次数,而 Total number of pthread idle dispatches 提供对 vp_sleep 的调用计数。

注: 不会在 WPAR 报告中生成每个处理器应用程序摘要。
应用程序摘要

报告的第二大节是“应用程序摘要”。 该节的第一部分在每个线程的基础上(通过线程标识符)总结了总系统处理时间。 对于由进程标识 (以及名称 (如果可用) 和线程标识) 标识的每个线程,摘要给出了应用程序 (与 APPLICATION 相同) 和 syscall (与 SYSCALL 相同) 处理总时间 (以毫秒计) 以及作为跟踪中所有处理器的系统处理总时间的百分比。 另外,该摘要还给出了这两种时间作为原始时间和作为对总处理时间的百分比的总和。

本节的第二部分以每个进程标识符(通过进程标识符)为基础给出了同样的信息。 本节的第三部分以每个进程名称(通过进程类型)为基础给出了同样的信息。

本节的第四部分对内核进程线程(“内核进程摘要”)给出了相似信息。 由于大多数 kprocs 提供特定的内核服务,所以总处理时间分割为两类,操作和内核,分别与一直运行在内核代码中的进程的“系统调用”和“应用程序”形成宽松的对应。 每个内核进程线程通过其名称、进程标识符、线程标识符和内核进程类型(如已知)来识别。 kproc 类型在紧跟在该摘要后的表格中列出并进行描述。

本节的第五部分是“pthread 进程摘要”。 本节给出多线程进程上的总的应用程序时间(通过 Pid)。 对于每个由进程标识符(和名称,如果有)标识的进程,该摘要给出总的应用程序、pthread 和其他处理时间(以毫秒计)与其对于跟踪中的所有处理器的总系统处理时间的百分比。

该“摘要”的所有五节按从处理时间的综合程度最高到最低的顺序排列显示。

在 "应用程序摘要" 的所有五个部分中,如果指定了 -@ 标志,那么将添加 WPAR 名称以标识线程或进程。

注: Pids 和 Tids (进程和线程标识) 始终以十进制表示。
系统调用摘要

报告的第三大节是“系统调用摘要”。 该节总结了用在系统调用上的处理时间。 对于每个系统调用(SVC,通过内核地址(和名称,如已知)标识),该摘要给出了调用 SVC 的次数和所有调用的总处理器时间(毫秒)以及其对于跟踪中所有处理器的总系统处理时间的百分比。 此外,该摘要还给出了一个至 SVC 的调用的平均值、最小值和最大值。 如指定了 -e 标志,那么该摘要给出至 SVC 的所有调用所用的总时间以及一个调用所用的平均、最小和最大时间。 “所用时间”为从进程开始以内核方式执行 SVC 至该进程重新以应用程序方式执行为止的畴壁时钟时间。 该“摘要”按从最多总处理器时间至最少总处理器时间的顺序排列。 如果指定了 -s 标志,摘要将给出每个错误代码(errno)被每个“系统调用”返回的次数。

该节的第二部分是“暂挂系统调用摘要”。 该节列出了已启动但未完成的“系统调用”。 给出的时间包括在系统和各种处理器的 SYSCALL 时间和发出了 SVC 的 pthread、线程和进程的 SYSCALL 时间中,但不包括在该节的第一部分中的系统调用的处理时间中。 暂挂调用也不包括在该节的第一部分中给出的计数中。

注意:
  1. “系统调用地址”总是以十六进制表示。 进程标识符和线程标识符总是以十进制表示。
  2. 如果指定了 -@ 标志,那么将在 "系统调用摘要" 中添加 WPAR 名称以标识线程或进程。
系统管理程序调用摘要

如果跟踪中有(系统)管理程序活动,那么将在报告的该处插入附加部分。 此报告的主要部分称为 Hypervisor Calls Summary。 本节总结了(系统)管理程序调用中所用的处理时间。 对于每个通过名称(和内核地址)标识的(系统)管理程序调用(HCALL),该摘要都给出了调用 HCALL 的次数和所有调用的总处理器时间(以毫秒为单位),以及跟踪的所有处理器在总系统处理时间中所占的百分比。 此外,该摘要还给出了一个至 HCALL 的调用的平均值、最小值和最大值。 如指定了 -e 标志,那么该摘要给出至 HCALL 的所有调用所用的总时间以及一个调用所用的平均、最小和最大时间。 所用时间是在(系统)管理程序调用开始和结束之间的畴壁时钟时间。 该摘要按从最多总处理器时间至最少总处理器时间的顺序排列。

此部分的第二部分称为 Pending Hypervisor Calls Summary。 该部分列出了已启动但未完成的(系统)管理程序调用。 给出的时间包括在系统和各种处理器的 HCALL 时间和发出了 HCALL 的 pthread、线程和进程的(系统)管理程序时间中,但不包括在本节的第一部分中的(系统)管理程序调用的处理时间中。 暂挂调用也不包括在该节的第一部分中给出的计数中。

注意:
  1. 系统管理程序调用地址总是以十六进制表示。 进程标识符和线程标识符总是以十进制表示。
  2. 如果指定了 -@ 标志,那么将在 "系统管理程序调用摘要" 中添加 WPAR 名称以标识线程或进程。
Pthread 调用摘要

报告的第四大节是“Pthread 调用摘要”。 该节总结了用在调用的 pthread 例程中的处理时间。 对于每个由名称指定的 pthread,该摘要给出调用 pthread 例程的次数和所有调用的总处理时间(毫秒)以及对于跟踪中所有处理器的总系统处理时间的百分比。 此外,该摘要还给出了一个至 pthread 例程的调用的平均值、最小值和最大值。 如果指定了 -e 标志,该摘要给出至 pthread 例程的所有调用所用的总时间以及一个调用所用的平均值、最小值和最大值。 所用时间为从进程开始执行 pthread 例程至该进程退出 libpthreads 代码位置的畴壁时钟时。 该“摘要”按从最多总处理器时间至最少总处理器时间的顺序排列。

该节的第二部分是“暂挂 Pthread 调用摘要”。 该节列出已启动但未完成的“Pthread 调用”。

如果指定了 -@ 标志,那么将在 "Pthread 调用摘要" 中添加 注: WPAR 名称以标识线程或进程。
系统 NFS 调用摘要

此报告的主要部分为“系统 NFS 调用摘要”。 该部分总结 NFS 操作中所用的处理时间。 对于每个由操作名和 NFS 版本标识的 NFS 操作,该摘要给出调用 operation 例程的次数和所有调用的总处理器时间(毫秒)以及对于 NFS 版本相同的所有处理器的总 NFS 操作时间的百分比。 此外,该操作还给出了它的一个调用的平均次数、最小次数和最大次数。 如果指定了 -e 标志,那么该摘要将给出对此操作的所有调用的总所用时间以及一个调用所用的平均时间、最小时间和最大时间。 同时也为 NFS 版本相同的所有操作提供了总所用时间作为总 NFS 操作所用时间的百分比。 所用时间为操作分派退出挂钩之前来自操作分派项挂钩的畴壁时钟时。 在任何情况下,摘要都将为 NFS 版本相同的所有操作提供操作调用计数,形式为总 NFS 操作调用的百分比。 “摘要”以操作码的流水号形式表示。 操作按 NFS 版本的顺序显示。 对于 NFS V4,服务器操作列在客户机操作之前。

“系统 NFS 调用摘要”后紧跟“暂挂 NFS 调用摘要”。 此部分列出了已启动但尚未完成的 NFS 调用。 给出的时间包括在系统和各种处理器的 NFS 时间和发出 NFS 的线程和进程的操作时间中,但不包括在该节的第一部分中 NFS 操作的处理时间中。 暂挂调用也不包括在该节的第一部分中给出的计数中。

如果指定了 -@ 标志,那么将在 "系统 NFS 调用摘要" 中添加 注: WPAR 名称以标识线程或进程。
Flih 摘要

报告的第五大节是“Flih 摘要”。 该节总结了用在第一级中断处理程序(Flih)上的时间量。 该节的第一部分给出了跟踪中的每个 Flih 的条目总数,以及所有处理器的所有 Flih 执行的总处理器时间(毫秒)。 此外,该摘要还给出了一个执行的平均值、最小值和最大值。 每个 Flih 由系统定义的 Flih 类型和相应的 Flih 名称(如已知)标识。

第二部分为以逐个处理器为基础停顿的相同信息。 可能不是所有发生在系统上的 Flih 都发生在每个处理器上,因此“全局 Flih”列表可能与每个处理器的 Flih 列表不同。

该节的第二部分可能包含“暂挂 Flih 摘要”。 这是一个已启动但未完成的 Flih 的列表。 给出的时间包括在系统和影响到的处理器的 FLIH 时间中,但不包括在本节的两个部分中的 Flih 处理时间。 暂挂调用也不包括在该节的两个部分中给出的计数中。

滑动摘要

报告的第五大节是“Slih 摘要”。 该节总结了用在第二级中断处理程序(Slih)上的时间量。 该节的第一部分给出了跟踪中的每个 Slih 的条目总数,以及所有处理器的所有 Slih 执行的总处理器时间(毫秒)。 此外,该摘要还给出了一个执行的平均值、最小值和最大值。 每个 Slih 由内核地址和 Slih 功能或模块名称(如已知)标识。

第二部分为以逐个处理器为基础停顿的相同信息。 可能不是所有发生在系统上的 Slih 都发生在每个处理器上,因此“全局 Slih”列表可能与每个处理器的 Slih 列表不同。

该节的第二部分可能包含“暂挂 Slih 摘要”。 这是一个已启动但未完成的 Slih 的列表。 给出的时间包括在系统和影响到的处理器的 SLIH 时间中,但不包括在本节的两个部分中的 Slih 处理时间。 暂挂 Slih 也不包括在该节的两个部分中给出的计数中。

详细流程信息
报告的本节是在指定 -p 标志时产生的。 它对每个跟踪中找到的进程给出了详细的信息。 该信息如下:
  • 该进程的进程标识 (Pid) ,进程名称 (如果已知) 和 WPAR 名称 (如果指定了 -@ 标志)。
  • 该进程的线程标识符(Tid)的计数和列表。
  • 该进程的 Pthread 标识(Ptid)的计数和列表(如果有)。
  • 会显示用于应用程序(用户)方式、系统调用方式和(系统)管理程序方式的时间。 对于内核进程,将显示用于内核方式和操作方式的时间作为替代。
  • 在应用方式下使用的时间、在 pthread 操作中使用的时间、在 libpthreads 分派中使用的时间以及在 vp_sleep 中所使用的时间的详细信息。 这仅在存在进程的任何 Ptid 的情况下才打印。
  • 有关由此进程的 pthread 执行了哪些“Pthread 调用”的信息。 对于 NFS kprocs,将转而显示有关此进程的线程调用了哪些“NFS 调用”的信息。 -e 标志也对该输出有影响。
  • 关于此进程的线程执行了哪些系统管理程序调用的信息。 -e 标志也对该输出有影响。
  • 有关此进程的线程执行了哪些“系统调用”的信息。 -e 标志也对该输出有影响。
这些进程以从应用程序和系统调用处理时间的综合程度最高到最低的顺序排列显示。
详细线程信息
报告的本节是在指定 -t 标志时产生的。 它对每个跟踪中找到的线程给出了详细的信息。 该信息如下:
  • 该线程的线程标识 (Tid) 和进程标识 (Pid) ,进程名称 (如果已知) 和 WPAR 名称 (如果指定了 -@ 标志)。
  • 会显示用于应用程序(用户)方式、系统调用方式和(系统)管理程序调用方式的时间。 对于内核进程,将显示用于内核方式和操作方式的时间作为替代。
  • 有关此线程执行了哪些“系统调用”的信息,包括如果指定了 -s 标志,由“系统调用”返回的错误的信息。 对于 NFS kproc 线程,将转而显示有关此线程调用了哪些“NFS 调用”的信息。 -e 标志也对该输出有影响。
  • 关于此线程执行了哪些系统管理程序调用的信息。 -e 标志也对该输出有影响。
  • “线程相似性”是一个线程被分派至它上一次在其上执行的处理器的概率。
  • “分派直方图”显示了该线程分派到系统中每个 CPU 的次数。
  • 分派线程的总次数 (不包括重新分派)。
  • 由于中断被禁用而引起的重新分派次数表示刚刚运行的相同线程由于设置了中断屏蔽至 INTMAX 而被再次分派。 这仅在非零时才显示。
  • 平均分派等待时间为自从线程最后一次未分派至今的平均时间(即,自从线程最后一次停止执行至今的平均时间)。
  • 当该线程执行时每个类型的 Flih 发生的次数。 这些类型中的一些可能由线程(比如 DSI 或 ISI)引起,而其他类型(比如 IO)可能在该线程运行时发生,而不一定由线程本身引起。
这些线程以从应用程序和系统调用处理时间的综合程度最高到最低的顺序排列显示。
详细的 Pthread 信息
报告的本节是在指定 -p 标志时产生的。 它给出有关在跟踪中找到的每个 pthread 的详细信息。 该信息如下:
  • 该 pthread 的 Pthread 标识 (Ptid) 和进程标识 (Pid) ,进程名称 (如果已知) 和 WPAR 名称 (如果指定了 -@ 标志)。
  • 会显示用于应用程序(用户)方式、内核方式和(系统)管理程序方式的时间。
  • 应用程序时间详细信息:在 pthread 调用、pthread 分派、vp_sleep(pthread 空闲)中所用的时间以及其他应用程序时间。
  • 有关此 pthread 执行了哪些“系统调用”的信息,包括如果指定了 -s 标志,由“系统调用”返回的错误的信息。 -e 标志也对该输出有影响。
  • 关于此 pthread 执行了哪些系统管理程序调用的信息。 -e 标志也对该输出有影响。
  • 有关由此 pthread 执行了哪些 Pthread 调用的信息。 -e 标志也对该输出有影响。
  • 亲和处理器集是对于任何 pthread 的分派,pthread 分配至它上一次在其上执行的同一个处理器的概率。
  • “分派直方图”为线程显示该 pthread 分派到系统的每个 CPU 的次数。
  • 分派 pthread 的总次数 (不包括重新分派)。
  • 由于正在禁止中断而引起的重新分派次数表示刚刚运行的相同 pthread 由于 pthread 已经设置了中断屏蔽至 INTMAX 而再次分配的次数。 这仅在非零时显示。
  • 平均分派等待时间为自从线程最后一次由内核分派器取消分派至今的平均使用时间(即,自从 pthread 最后一次停止执行至今的平均使用时间)。
  • 线程亲合关系是对于任何 pthread 的分派,pthread 分配至它上一次在其上执行的同一个线程的概率。
  • “分派直方图”为线程显示该 pthread 分派到系统的每个线程的次数。
  • 分派到 libpthread 中的 pthread 的总数。
  • 平均分派等待时间为自从线程最后一次由 libpthread 分派器取消分派的平均使用时间(即,自从线程最后一次停止执行至今的平均使用时间)。
  • 当该线程执行时每个类型的 Flih 发生的次数。 这些类型中的一些可能由线程(比如 DSI 或 ISI)引起,而其他类型(比如 IO)可能在该线程运行时发生,而不一定由线程本身引起。

pthread 按 Pid-Ptid 分类显示。

文件

描述
/usr/bin/curt 包含 curt 命令。 位于 bos.perf.tools 文件集。