curt コマンド

目的

CPU 使用率レポートをトレースから生成します。

構文

curt -i inputfile [-o outputfile] [ -n gensymsfile] [-m trcnmfile] [-a pidnamefile] [-f timestamp ] [-l timestamp] [-r PURR] [ -ehp stP] [ -@ {ALL | WparList}]

説明

curt コマンドは、AIX® トレース・ファイルを入力として取り込んで、プロセッサー (CPU) 使用率およびプロセス/スレッド/pthread のアクティビティーに関する数多くの統計情報を生成します。 このコマンドは、プロセッサー・クロックが適切に同期化されていれば、ユニプロセッサーとマルチプロセッサー両方の AIX トレースの両方を処理します。

trace コマンドを使用して収集された AIX トレース・ファイルには、少なくとも以下にリストするトレース・イベント (トレース・フック) が含まれている必要があります。 これらは、curt が統計情報を計算するために調べるイベントです。
  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
これは、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 アプリケーションを実行する必要があります。 これを行う 1 つの方法は、アプリケーションを開始する前に以下の 3 つのステップを実行することです (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 inputfile これから分析する入力 AIX トレース・ファイルを指定します。
-o outputfile 出力ファイルを指定します (デフォルトは標準出力)。
-n gensymsfile gensyms によって生成される名前ファイルを指定します。
-m trcnmfile trcnm によって生成される名前ファイルを指定します。
-a pidnamefile プロセス名マッピング・ファイルに PID を指定します。
-f timestamp timestamp に指定された時点にトレースの処理を開始します。
-l timestamp timestamp に指定された時点にトレースの処理を停止します。
-r PURR PURR レジスターを使用して、CPU 時間を計算します。
-e システム呼び出しおよび pthread 呼び出しに関する経過時間情報を出力します。
-h 使用方法テキスト (この情報) を表示します。
-p 詳細プロセス情報を出力します。
-s システム呼び出しによって戻されたエラーに関する情報を出力します。
-t 詳細スレッド情報を出力します。
-P 詳細 pthread 情報を出力します。
-@ curt レポートへのworkload partition情報の追加を制御します。
-@ フラグを次のいずれかの形式で使用できます。
-@
workload partitionsの要約を出力します。この要約には、さまざまな実行モードでのworkload partitionsのプロセッサー使用率が含まれます。 さらに、処理のリストには WPAR 名が表示され、プロセス、スレッド、または pthread によるプロセッサー使用率が要約されます。
-@ All
システムとすべてのworkload partitionsに関するレポートを出力します。 レポートは 3 本線で区切られ、WPAR 名またはシステム全体を意味する SYSTEM という文字が入ります。
-@ WparList
WparList パラメーター (コンマで区切った WPAR 名のリスト) に指定された、workload partitionsに関するレポートを出力します。 レポートは 3 本線で区切られ、WPAR 名が入ります。

trace プロセス名テーブルが正確でないか、またはより説明的な名前が望ましい場合は、-a フラグを使用して、PID からプロセス名へのマッピング・ファイルを指定してください。 これは、プロセス ID (10 進数)、それに続くスペース、さらにその次に続く ASCII 文字列 (これがそのプロセスの名前として使用されます) から構成される行が入っているファイルです。

-n フラグを指定して入力 AIX トレース・ファイルを作成した場合、curt コマンド・ラインに -m または -n フラグを指定しないと、curt はそのアドレス/名前テーブルを使用してシステム呼び出しおよび Slih アドレスを名前に変換します。

入力 AIX トレース・ファイルをworkload partition内で作成した場合、 curt コマンドは WPAR レポートを印刷します。この場合、-@ フラグは使用できません。

レポートの内容

curt レポートには次の情報が含まれます。

curt およびトレース情報

curt レポートの最初の数行には、curt プログラムが実行された時刻および curt の起動に使用されたコマンド・ラインが記述されています。 その後に続くのは、curt が処理中の AIX トレース・ファイルに関する情報 (名前、サイズ、作成日、およびそのトレース・ファイルを収集するのに使用されたコマンド) です。

-r PURR オプションが使用された場合に、CPU 時間を 計算するために使用された行 PURR が印刷され、トレース・ファイルに PURR レジスターが 組み込まれます。

System Summary

このレポートの最初の主要なセクションは「System Summary」です。 このセクションには、システム全体 (すべてのプロセッサー) がさまざまな実行モードで費やした時間が記述されています。 以下に、それらのモードを示します。
APPLICATION
すべてのプロセッサーがユーザー (つまり、非特権) モードで費やした時間の合計です。
SYSCALL
すべてのプロセッサーがシステム呼び出しの実行に費やした時間の合計。これは、プロセッサーがカーネル・コードで稼働して、ユーザー・プロセスから直接要求されたサービスの提供に費やした分の時間です。
HCALL
すべてのプロセッサーがハイパーバイザー・コールの実行に費やした時間の合計。これは、プロセッサーが ハイパーバイザー・コードで、カーネルによって直接要求されたサービスの提供を実行するのに費やす 部分の時間です。
KPROC
すべてのプロセッサーが IDLE プロセスおよび NFS プロセス以外のカーネル・プロセスの実行に費やした時間の合計です。 これは、プロセッサーがカーネル・コードのみを実行する特別に作成されたディスパッチ可能プロセスの実行に費やした分の時間です。
NFS
すべてのプロセッサーが NFS オペレーションの実行に費やした時間の合計です。 NFS V2/V3 の場合、NFS オペレーションは RFS_DISPATCH_ENTRY サブフックで開始し、RFS_DISPATCH_EXIT サブフックで終了します。 NFS V4 の場合、NFS オペレーションは start で開始し、 done または done error で終了します。
FLIH
すべてのプロセッサーが FLIH (第 1 レベル割り込みハンドラー) に費やした時間の合計です。
SLIH
すべてのプロセッサーが SLIH (第 2 レベル割り込みハンドラー) に費やした時間の合計です。
DISPATCH
すべてのプロセッサーが AIX ディスパッチ・コードに費やした時間の合計です。 この合計には、すべてのスレッドのディスパッチング (つまり、IDLE プロセスのディスパッチも含む) に費やされた時間が組み込まれています。
IDLE DISPATCH
すべてのプロセッサーが AIX ディスパッチ・コードに費やした時間の合計です。この場合、ディスパッチされていたプロセスは IDLE プロセスです。 DISPATCH カテゴリーには IDLE DISPATCH カテゴリーの時間が組み込まれているため、IDLE DISPATCH カテゴリーの時間は、CPU(s) busy time の計算でも TOTAL の計算でも、別個に加算されるわけではありません (以下の説明を参照してください)。
CPU(s) busy time
すべてのプロセッサーが APPLICATION、SYSCALL、KPROC、FLIH、SLIH、および DISPATCH モードでの実行に費やした時間の合計です。
IDLE
すべてのプロセッサーが IDLE プロセスの実行に費やした時間の合計です。
TOTAL
CPU(s) busy time と IDLE の合計です。 この数値は「合計処理時間」と呼ばれます。
processing total time (msec)」というラベルが付けられた欄には、対応する処理カテゴリーの合計時間がミリ秒単位で示されます。 「percent total time」というラベルが付けられた欄には、TOTAL の処理合計時間に占めるパーセンテージとして処理合計時間が示されます。 「percent busy time」というラベルが付けられた欄には、CPU(s) busy time の処理合計時間に占めるパーセンテージとして処理合計時間が示されます。 「Avg. Thread Affinity」は、あるスレッドがそれを最後に実行したのと同じプロセッサーにディスパッチされた確率です。

「Total Physical CPU time (msec)」は、CPU (複数の場合もある) が稼働中であった (優先使用では ない) 実時間です。「Physical CPU percentage」によって、合計時間に占めるパーセンテージとして 「Physical CPU Time」を示します。

注: WPAR レポートでは、システムの要約情報に「WPAR summary」というラベルが付けられます。

System Application Summary

「System Summary」の次は、ユーザー・モードで費やした時間について詳しく説明する「System Application Summary」セクションです。 このセクションでは、すべてのプロセッサーが libpthread のさまざまなパートで実行するすべてのプロセスに費やした時間について記述します。
PTHREAD
すべての pthread が、トレースされた libpthread オペレーションに費やした時間の合計です。
PDISPATCH
すべての pthread が、libpthread ディスパッチ・コードに費やした時間の合計です。
PIDLE
すべての pthread が、libpthread vp_sleep コードに費やした時間の合計です。
OTHER
すべてのユーザー・モードのスレッドが、トレースされた libpthread オペレーション以外で費やした時間の合計です。
APPLICATION time
すべてのプロセッサーがユーザー・モードで費やした時間の合計です。
processing total time (msec)」というラベルが付けられた欄には、対応する処理カテゴリーの合計時間がミリ秒単位で示されます。 「percent total time」というラベルの付けられた欄には、「System Summary」の TOTAL 処理合計時間に占めるパーセンテージとして処理合計時間が示されます。 「percent application time」というラベルの付けられた欄には、APPLICATION 処理合計時間に占めるパーセンテージとして処理合計時間が示されます。 「Avg. Pthread Affinity」とは、ある pthread が最後に実行したスレッドと同じスレッドにディスパッチされた確率です。
注: WPAR レポートでは、システム・アプリケーションの要約情報に「WPAR application summary」というラベルが付けられます。

s Summary

-@ フラグを指定すると、レポートの「WPAR summary」が生成されます。workload partitionsに関する以下のシステム情報およびシステム・アプリケーション情報が、この要約の列見出しとして表示されます。 これらの情報では、すべてのworkload partitionsで費やされた時間が詳しく説明されます。
appli
ユーザー・モード (非特権モード) で WPAR が費やした合計処理時間のパーセント。
syscall
WPAR がシステム呼び出しに費やした合計処理時間のパーセント。
hcall
WPAR がハイパーバイザー・コールに費やした合計処理時間のパーセント。
kproc
WPAR がカーネル・プロセス・コールの実行に費やした合計処理時間のパーセント。
nfs
WPAR が NFS 操作の実行に費やした合計処理時間のパーセント。
flih
第 1 レベル割り込みハンドラーで WPAR が費やした合計処理時間のパーセント。
slih
第 2 レベル割り込みハンドラーで WPAR が費やした合計処理時間のパーセント。
total
WPAR が費やした合計処理時間のパーセント。
total(msec)
WPAR が使用したプロセッサー時間の合計 (ミリ秒)。
WPAR
WPAR 名。
注: 「WPAR summary」は、システム全体のレポート内でのみ生成されます。

Per Processor Summary

「System Application Summary」の次は「Per Processor Summary」セクションです。これは、本質的には同じ情報ですが、プロセッサーごとに分類されています。 「System Summary」での説明で使用した句「すべてのプロセッサーが費やした合計時間」は「このプロセッサーが費やした時間」に置き換えられます。 「Total number of process dispatches」は AIX がこのプロセッサーに任意の非 IDLE プロセスをディスパッチした回数を示し、一方「Total number of idle dispatches」は IDLE プロセス・ディスパッチのカウントを示します。

Total Physical CPU time (msec)」は、プロセッサーが稼働中であった (優先使用では ない) 実時間です。「Physical CPU percentage」に よって、「Physical CPU Time」を合計時間に占めるパーセンテージとして 示します。

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 レポートでは、プロセッサーごとの要約は生成されません。

Per Processor Application Summary

「Per Processor Summary」の次は「Per Processor Application Summary」セクションです。 これは、本質的には「System Application Summary」と同じ情報ですが、プロセッサーごとに分類されています。

Total number of pthread dispatches」は libpthread がこのプロセッサーに任意の pthread をディスパッチした回数を示し、一方「Total number of pthread idle dispatches」は vp_sleep への呼び出しのカウントを示します。

注: WPAR レポートでは、プロセッサーごとのアプリケーションの要約は生成されません。

Application Summary

このレポートの 2 番目の主要なセクションは「Application Summary」です。 このセクションの最初の部分では、合計システム処理時間がスレッドごと (TID 別) に要約されています。 この要約では、プロセス ID (使用可能な場合は名前も使用) およびスレッド ID によって識別されるそれぞれのスレッドごとに、合計 application (上記の APPLICATION と同じ) および syscall (上記の SYSCALL と同じ) 処理時間がミリ秒単位で示され、さらにそれがトレース内のすべてのプロセッサーを対象とした合計システム処理時間に占めるパーセンテージとして示されます。 これに加え、この要約ではこの 2 つの時間の合計がロウ時間としてだけでなく、合計処理時間のパーセンテージとしても示されます。

このセクションの 2 番目の部分では、同じ情報がプロセス ID ごと (PID 別) に示されます。 このセクションの 3 番目の部分では、同じ情報がプロセス名ごと (プロセス・タイプ別) に示されます。

このセクションの 4 番目の部分では、カーネル・プロセス・スレッドに関して類似の情報が示されます (「Kproc Summary」)。 ほとんどの kproc は特定のカーネル・サービスを提供するので、合計処理時間は operation と kernel という 2 つのカテゴリーに分けられます。これらは、常にカーネル・コード内で実行されるプロセスの場合の syscall と application に大体対応します。 それぞれの kproc スレッドは、名前、プロセス ID、スレッド ID、および kproc のタイプ (分かっている場合) によって識別されます。 kproc のタイプは、この要約の直後に続くテーブルでリストおよび説明されています。

このセクションの 5 番目の部分は「Pthread Process Summary」です。 このセクションでは、マルチスレッド・プロセスの合計アプリケーション時間を (PID ごとに) 説明します。 この要約では、プロセス ID (使用可能な場合は名前も) によって識別されるそれぞれのプロセスごとに、アプリケーション、pthread およびその他のプロセス時間の合計がミリ秒単位で示され、さらにトレース内のすべてのプロセッサーを対象とした合計アプリケーション時間に占めるパーセンテージとして示されます。

この要約内の 5 つのすべてのセクションは、最大 combined 処理時間から最小 combined 処理時間へという順序に従ってソートされた状態で示されます。

-@ フラグを指定すると、「Application Summary」の 5 セクションすべてにおいて、 スレッドまたはプロセスを識別するために WPAR 名が追加されます。

注: Pid および Tid (プロセス ID およびスレッド ID) は、常に 10 進数で示されます。

System Calls Summary

このレポートの 3 番目の主要なセクションは「System Calls Summary」です。 このセクションでは、システム呼び出しに費やされた処理時間が要約されています。 この要約では、カーネル・アドレス (使用可能な場合は名前も使用) によって識別されるそれぞれのシステム呼び出し (SVC) ごとにその SVC が呼び出された回数が示され、さらにすべての呼び出しを対象とした合計処理時間がミリ秒単位で、およびトレース内のすべてのプロセッサーを対象とした合計システム処理時間に占めるパーセンテージとして示されます。 これに加え、この要約ではその SVC に対する 1 回の呼び出し当たりの平均時間、最小時間、および最大時間が示されます。 -e フラグが指定されている場合は、この要約ではその SVC に対するすべての呼び出しを対象とした合計経過時間と、1 回の呼び出し当たりの平均、最小、および最大経過時間が示されます。 経過時間は、プロセスがその SVC をカーネル・モードで実行し始めた時点からそのプロセスがアプリケーション・モードで実行を再開するまでの時間です。 この要約は、最大合計プロセッサー時間から最小合計プロセッサー時間へとソートされた順序で示されます。 -s フラグが指定されている場合は、この要約ではそれぞれのシステム呼び出しによって戻されたエラー・コード (errno) について、その回数がエラー・コード別に示されます。

このセクションの 2 番目の部分は「Pending System Calls Summary」です。 この部分には、開始されたが完了しなかったシステム呼び出しがリストされています。 示されている時間は、システムおよびさまざまなプロセッサーに関する SYSCALL 時間に 組み込まれ、SVC を発行した pthread、スレッド、およびプロセスに関する SYSCALL 時間に 組み込まれますが、このセクションの最初の部分のシステム呼び出しに関する処理時間には 組み込まれません。 保留中の呼び出しも、このセクションの最初の部分に示されているカウントには組み込まれていません。

注:
  1. システム・コール・アドレスは、常に 16 進数で示されます。 Pid および Tid は、常に 10 進数で示されます。
  2. -@ フラグを指定すると、「System Calls Summary」において、 スレッドまたはプロセスを識別するために WPAR 名が追加されます。

System Hypervisor Calls Summary

トレース内にハイパーバイザー・アクティビティーがある場合は、追加のセクションがレポートのこの点に 挿入されます。レポートのこの主要セクションは、「Hypervisor Calls Summary」と 呼ばれています。このセクションでは、ハイパーバイザー・コールで費やされた処理時間を 要約します。名前 (およびカーネル・アドレス) によって識別された各ハイパーバイザー・コール (HCALL) ごとに、この要約では、HCALL が呼び出された回数、および すべての呼び出しの合計処理時間を、ミリ秒単位で、しかもトレース内の全プロセッサーの 合計システム処理時間に占めるパーセンテージとして示します。 さらに、要約では、HCALL に対する 1 回の呼び出し当たりの平均時間、最小時間、および最大時間を 示します。-e フラグが指定されている場合は、この要約 では、HCALL に対するすべての呼び出しに関する合計経過時間と、1 回の呼び出し当たりの平均経過時間、最小経過 時間、および最大経過時間を示します。経過時間とは、ハイパーバイザー・コールの開始と終了の間の 壁時計時間のことです。この要約は、最大合計プロセッサー時間から最小合計プロセッサー時間へとソートされた順序で示されます。

このセクションの 2 番目の部分は、「Pending Hypervisor Calls Summary」です。この部分には、開始されたが完了しなかったハイパーバイザー・コールがリストされています。 示されている時間は、システムおよびさまざまなプロセッサーに関する HCALL 時間に 組み込まれ、HCALL を発行した pthread、スレッド、およびプロセスに関するハイパーバイザー時間に 組み込まれますが、このセクションの最初の部分のハイパーバイザー・コールに関する処理時間には 組み込まれません。 保留中の呼び出しも、このセクションの最初の部分に示されているカウントには組み込まれていません。

注:
  1. ハイパーバイザー・コール・アドレスは、常に 16 進数で示されます。 Pid および Tid は、常に 10 進数で示されます。
  2. -@ フラグを指定すると、「System Hypervisor Calls Summary」において、 スレッドまたはプロセスを識別するために WPAR 名が追加されます。

Pthread Calls Summary

このレポートの 4 番目の主要なセクションは「Pthread Calls Summary」です。 このセクションでは、呼び出された pthread ルーチンに費やされた処理時間が要約されています。 この要約では、名前で識別されるそれぞれの pthread ルーチンごとにその pthread が呼び出された回数が示され、さらにすべての呼び出しを対象とした合計プロセッサー時間がミリ秒単位で、およびトレース内のすべてのプロセッサーを対象とした合計システム処理時間に占めるパーセンテージとして示されます。 さらに、この要約では pthread ルーチンに対する 1 回の呼び出し当たりの平均時間、最小時間、および最大時間が示されます。 -e フラグが指定されている場合は、この要約ではその pthread ルーチンに対するすべての呼び出しを対象にした合計経過時間と、1 回当たりの呼び出しの平均、最小、および最大経過時間が示されます。 経過時間は、プロセスがその pthread ルーチンを実行し始めた時点からそのプロセスが libpthread コードを終了するまでの時間です。この要約は、最大合計プロセッサー時間から最小合計プロセッサー時間へとソートされた順序で示されます。

このセクションの 2 番目のパートは「Pending Pthread Calls Summary」です。 このパートには、開始されたが完了しなかった Pthread コールがリストされています。

注: -@ フラグを指定すると、「Pthread Calls Summary」において、 スレッドまたはプロセスを識別するために WPAR 名が追加されます。

System NFS Calls Summary

このレポートの主要なセクションは「System NFS Calls Summary」です。 このセクションでは、NFS オペレーションに費やされた処理時間が要約されています。 この要約では、 オペレーション名および NFS バージョンで識別されるそれぞれの NFS オペレーションごとにそのオペレーションが呼び出された回数が示され、 さらにすべての呼び出しを対象とした合計プロセッサー時間がミリ秒単位で、 および同じ NFS バージョンのすべてのオペレーションを対象とした合計 NFS オペレーション時間に占めるパーセンテージとして示されます。 これに加え、この要約ではそのオペレーションに対する 1 回の呼び出し当たりの平均時間、 最小時間、および最大時間が示されます。 -e フラグが指定されている場合は、 この要約ではそのオペレーションに対するすべての呼び出しを対象とした合計経過時間と、1 回の呼び出し当たりの平均、 最小、および最大時間が示されます。 合計経過時間は、同じ NFS バージョンのすべてのオペレーションを対象とした合計 NFS オペレーション経過時間に占めるパーセンテージとしても示されます。 経過時間は、 オペレーション・ディスパッチ入り口フックからオペレーション・ディスパッチ出口フックまでの時間です。 要約では常に、同じ NFS バージョンのすべてのオペレーションを対象とした合計 NFS オペレーション呼び出しに占めるパーセンテージとしてのオペレーション呼び出しのカウントが示されます。 要約は、オペレーション・コードの番号順に示されます。 オペレーションは、NFS バージョンの順に示されます。 NFS V4 の場合、サーバー・オペレーションはクライアント・オペレーションの前にリストされます。

「System NFS Calls Summary」の次に、「Pending NFS Calls Summary」が続きます。 この部分には、開始されたが完了しなかった NFS 呼び出しがリストされています。 示されている時間は、システムおよび各種のプロセッサーについての NFS 時間に組み込まれ、 さらにその NFS 呼び出しを発行したスレッドおよびプロセスについてのオペレーション時間に組み込まれていますが、 このセクションの最初の部分に示されている NFS オペレーションの処理時間には組み込まれていません。 保留中の呼び出しも、このセクションの最初の部分に示されているカウントには組み込まれていません。

注: -@ フラグを指定すると、「System NFS Calls Summary」において、 スレッドまたはプロセスを識別するために WPAR 名が追加されます。

Flih Summary

このレポートの 5 番目の主要なセクションは「Flih Summary」です。 このセクションでは、第 1 レベル割り込みハンドラー (FLIH) に費やされた時間の量が要約されています。 この要約の最初の部分には、トレース内の各 FLIH へのエントリーの合計数と、すべてのプロセッサーによるその FLIH のすべての実行の合計プロセッサー時間がミリ秒単位で示されます。 さらに、この要約では 1 回の実行当たりの平均時間、最小時間、および最大時間が示されます。 それぞれの FLIH は、システム定義の FLIH タイプ、および対応する FLIH 名 (分かっている場合) によって識別されます。

2 番目の部分は、同じ情報がプロセッサーごとに分類されたものです。 システムで発生したすべての FLIH がそれぞれどのプロセッサーでも発生したとはかぎらないので、「Global Flih」リストが各プロセッサーごとの「Flih」リストと同じでない可能性があります。

このセクションの 2 番目の部分に「Pending Flih Summary」が組み込まれる場合があります。 これは、開始されたが完了しなかった FLIH のリストです。 示されている時間は、システムおよび影響を受けるプロセッサーについての FLIH 時間には組み込まれていますが、このセクションの両方の部分に示されている FLIH の処理時間には組み込まれていません。 保留中の FLIH も、このセクションの両方の部分に示されているカウントには組み込まれていません。

Slih Summary

このレポートの 5 番目の主要なセクションは「Slih Summary」です。 このセクションでは、第 2 レベル割り込みハンドラー (SLIH) に費やされた時間の量が要約されています。 この要約の最初の部分には、トレース内の各 SLIH へのエントリーの合計数と、すべてのプロセッサーによるその SLIH のすべての実行の合計プロセッサー時間がミリ秒単位で示されます。 さらに、この要約では 1 回の実行当たりの平均時間、最小時間、および最大時間が示されます。 それぞれの SLIH は、カーネル・アドレス、および SLIH 機能 (つまりモジュール) の名前 (分かっている場合) によって識別されます。

2 番目の部分は、同じ情報がプロセッサーごとに分類されたものです。 システムで発生したすべての SLIH がそれぞれどのプロセッサーでも発生したとはかぎらないので、「Global Slih」リストが各プロセッサーごとの「Slih」リストと同じでない可能性があります。

このセクションの 2 番目の部分に「Pending Slih Summary」が組み込まれる場合があります。 これは、開始されたが完了しなかった SLIH のリストです。 示されている時間は、システムおよび影響を受けるプロセッサーについての SLIH 時間には組み込まれていますが、このセクションの両方の部分に示されている SLIH の処理時間には組み込まれていません。 保留中の SLIH も、このセクションの両方の部分に示されているカウントには組み込まれていません。

Detailed Process Information

レポートのこのセクションは、-p フラグが指定されている場合に生成されます。 ここには、トレースで検出された各プロセスについての詳細情報が示されます。 この情報は以下のとおりです。
  • そのプロセスのプロセス ID (Pid)、プロセス名 (分かっている場合)、 および WPAR 名 (-@ フラグを指定した場合)。
  • そのプロセスのスレッド ID (Tid) の数およびリスト。
  • そのプロセスの pthread ID (Ptid) の数およびリスト (ある場合)。
  • アプリケーション (ユーザー) モード、システム・コール・モード、および ハイパーバイザー・モードで費やされた時間が示されます。kproc の場合は、その代わりに kernel モードおよび operation モードで費やされた時間が示されます。
  • アプリケーション・モード、pthread オペレーション、libpthread ディスパッチ、および vp_sleep でそれぞれ費やされた時間の詳細。 プロセスに対する Ptid がある場合のみ表示されます。
  • このプロセスの pthread が実行した pthread コールの種類に関する情報。 NFS kproc の場合は、このプロセスのスレッドが実行した NFS 呼び出しに関する情報が表示されます。 -e フラグもこの出力に影響を与えます。
  • このプロセスのスレッドが実行したハイパーバイザー・コールの種類に関する情報。 -e フラグもこの出力に影響を与えます。
  • このプロセスのスレッドが実行したシステム呼び出しの種類に関する情報。 -e フラグもこの出力に影響を与えます。
プロセスは、最大 combined application 処理時間および最大 syscall 処理時間から最小 combined application 処理時間および最小 syscall 処理時間へという順序に従ってソートされた状態で示されます。

Detailed Thread Information

レポートのこのセクションは、-t フラグが指定されている場合に生成されます。 ここには、トレースで検出された各スレッドについての詳細情報が示されます。 この情報は以下のとおりです。
  • そのスレッドのスレッド ID (Tid) とプロセス ID (Pid)、プロセス名 (分かっている場合)、 および WPAR 名 (-@ フラグを指定した場合)。
  • アプリケーション (ユーザー) モード、システム・コール・モード、および ハイパーバイザー・コール・モードで費やされた時間が示されます。kproc の場合は、その代わりに kernel モードおよび operation モードで費やされた時間が示されます。
  • このスレッドが実行したシステム呼び出しに関する情報。 -s フラグが指定された場合は、システム呼び出しによって戻されたエラーに関する情報も 含まれます。NFS kproc の場合は、このスレッドが実行した NFS 呼び出しに関する情報が表示されます。 -e フラグもこの出力に影響を与えます。
  • このスレッドによって実行されたハイパーバイザー・コールに関する情報。 -e フラグもこの出力に影響を与えます。
  • プロセッサー親和性は、そのスレッドがそれを最後に実行したのと同じプロセッサーにディスパッチされた確率を、そのスレッドのすべてのディスパッチを対象として示したものです。
  • Dispatch Histogram は、そのスレッドがシステム内のそれぞれの CPU にディスパッチされた回数を示します。
  • そのスレッドがディスパッチされた回数の合計 (下記の 7 で説明する再ディスパッチの回数は組み込まれていません)。
  • 割り込みが使用不可になったための再ディスパッチの回数は、実行されたばかりのスレッドが割り込みマスクを INTMAX に設定してあったために、その同じスレッドが再度ディスパッチされたことを示します。 これは、ゼロ以外の場合にのみ表示されます。
  • 平均ディスパッチ待ち時間は、そのスレッドが最後にディスパッチ解除された時点からの平均経過時間 (つまり、そのスレッドが最後に実行を停止した時点からの平均経過時間) です。
  • このスレッドの実行中に発生した FLIH のタイプ別発生回数。 これらのタイプのいくつかは、そのスレッド (DSI や ISI など) が原因で発生する場合があります。一方、その他のタイプ (IO など) は、そのスレッド自体が原因で発生するとは限らず、そのスレッドの実行中に偶然発生する可能性があります。
スレッドは、最大 combined application 処理時間および最大 syscall 処理時間から最小 combined application 処理時間および最小 syscall 処理時間へという順序に従ってソートされた状態で示されます。

Detailed Pthread Information

レポートのこのセクションは、-P フラグが指定されている場合に生成されます。 ここには、トレースで検出された各 pthread についての詳細情報が示されます。 この情報は以下のとおりです。
  • その pthread の pthread ID (Ptid) とプロセス ID (Pid)、プロセス名 (分かっている場合)、 および WPAR 名 (-@ フラグを指定した場合)。
  • アプリケーション (ユーザー) モード、カーネル・モード、および ハイパーバイザー・モードで費やされた時間が示されます。
  • アプリケーション時間の詳細。すなわち pthread コール、pthread ディスパッチ、および vp_sleep (pthread idle) に費やした時間、および他のアプリケーション時間。
  • この pthread が実行したシステム呼び出しの種類に関する情報。 -s フラグを指定した場合は、システム呼び出しによって戻されたエラーに関する情報も組み込まれます。 -e フラグもこの出力に影響を与えます。
  • この pthread が実行したハイパーバイザー・コールの種類に関する情報。 -e フラグもこの出力に影響を与えます。
  • この pthread が実行した pthread コールの種類に関する情報。 -e フラグもこの出力に影響を与えます。
  • プロセッサー親和性は、その pthread がそれを最後に実行したのと同じプロセッサーにディスパッチされた確率を、その pthread のすべてのディスパッチを対象として示したものです。
  • スレッドの「Dispatch Histogram」は、pthread がシステム内のそれぞれの CPU にディスパッチされた回数を示します。
  • pthread がディスパッチされた回数の合計 (下記の 9 で説明する再ディスパッチの回数は組み込まれていません)。
  • 割り込みが使用不可になったための再ディスパッチの回数は、実行されたばかりの pthread が割り込みマスクを INTMAX に設定してあったために、その同じ pthread が再度ディスパッチされたことを示します。 これは、ゼロ以外の場合にのみ表示されます。
  • 平均ディスパッチ待ち時間は、その pthread がカーネル・ディスパッチャーで最後にディスパッチ解除された時点からの平均経過時間 (つまり、その pthread が最後に実行を停止した時点からの平均経過時間) です。
  • スレッド親和性は、その pthread がそれを最後に実行したのと同じスレッドにディスパッチされた確率を、その pthread のすべてのディスパッチを対象として示したものです。
  • pthread の「Dispatch Histogram」は、pthread がシステム内のそれぞれのスレッドにディスパッチされた回数を示します。
  • libpthreads 内で pthread がディスパッチされた回数の合計。
  • 平均ディスパッチ待ち時間は、そのスレッドが libpthread ディスパッチャーで最後にディスパッチ解除された時点からの平均経過時間 (つまり、そのスレッドが最後に実行を停止した時点からの平均経過時間) です。
  • このスレッドの実行中に発生した FLIH のタイプ別発生回数。 これらのタイプのいくつかは、そのスレッド (DSI や ISI など) が原因で発生する場合があります。一方、その他のタイプ (IO など) は、そのスレッド自体が原因で発生するとは限らず、そのスレッドの実行中に偶然発生する可能性があります。

pthreads は Pid から Ptid の間でソートされて表示されます。

ファイル

項目 説明
/usr/bin/curt curt コマンドが入っています。 bos.perf.tools ファイルセットに配置されます。