Oracle Solaris Studio 12.2: パフォーマンスアナライザ

Procedureカーネルのプロファイリング

  1. 次のように入力し、実験を収集します。


    % er_kernel -p on
    
  2. 任意の負荷を別のシェルで実行します。

  3. 負荷が完了したら、Ctrl-C キーを押して er_kernel ユーティリティーを終了します。

  4. デフォルトでは ktest.1.erという名前の結果の実験を、パフォーマンスアナライザまたは er_print ユーティリティーに読み込みます。

    カーネルの時間プロファイルによって、「KCPU サイクル」というラベルの付いたパフォーマンスメトリックが 1 つ生成されます。パフォーマンスアナライザでは、「関数」タブのカーネル関数について示され、「呼び出し元 - 呼び出し先」タブでは呼び出し先と呼び出し元について示され、「逆アセンブリ」タブでは命令について示されます。「ソース」タブにはデータは表示されません。カーネルモジュールは、通常、出荷時点ではファイルおよび行シンボルテーブル情報 (スタブ) を含んでいないからです。

    er_kernel ユーティリティーへの -p on 引数を、高分解能プロファイルの場合は < -p high に、低分解能プロファイルの場合は -p low に置き換えることができます。 負荷の実行に 2 ~ 20 分を要すると思われる場合は、デフォルトの時間プロファイルが適切です。実行に要する時間が 2 分未満と思われる場合は -p high を使用し、20 分を超えると思われる場合は -p low を使用します。

    -t 所要時間引数を追加でき、これを追加すると er_kernel ユーティリティーは 所要時間で指定された時間に従って自動的に終了します。

    -t 所要時間は、m (分) または s (秒) のサフィックスを付けた単数で指定できます。これは、実験を強制終了するまでの時間 (分または秒) を示します。 デフォルトでは、所要時間は秒です。所要時間はハイフンで区切られた 2 つの数で指定することもできます。これは、1 つ目の時間が経過するまでデータ収集を停止し、そして、データ収集を始める時間を示しています。2 つ目の時間が経過すると、データ収集が終了されます。2 つ目の時間がゼロの場合、初めてプログラムが停止したあと、そのプログラムの実行の終わりまで、データの収集が実行されます。実験が終了しても、ターゲットプロセスは最後まで実行できます。

    期間または間隔が指定されていない場合、er_kernel は停止するまで実行されます。停止させるには、Ctrl-C (SIGINT) を押します。あるいは、kill コマンドを使用し、SIGINTSIGQUITSIGTERMer_kernel プロセスに送信しても停止させることもできます。er_kernel プロセスは、これらの信号のいずれかを受け取ると、実験を終了し (-A off が指定されていない限り)、er_archive を実行します。er_archive ユーティリティーは、実験で参照されている共有オブジェクトのリストを読み取り、それぞれについてアーカイブファイルを構築します。

    -v引数を追加すると、実行に関するより多くの情報を画面に出力できます。 -n 引数を使用すると、実際には何も記録せずに、記録される実験のプレビューを表示できます。

    デフォルトでは、er_kernel ユーティリティーによって生成される実験の名前は ktest.1.er で、続けて実験が生成されると番号が順に増えていきます。