ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris Studio 12.3: パフォーマンスアナライザ Oracle Solaris Studio 12.3 Information Library (日本語) |
ハードウェアカウンタオーバーフローのプロファイルに関する制限事項
ハードウェアカウンタオーバーフローのプロファイルによる実行時のひずみと実行時間の拡大
Java プログラミング言語で書かれたアプリケーションの実行時のひずみと実行時間の拡大
-h counter_definition_1...[, counter_definition_n]
collect ユーティリティーによる動作中のプロセスからのデータの収集
collect ユーティリティーを使用して動作中のプロセスからデータを収集する
Oracle Solaris プラットフォーム上での dbx による動作中のプロセスからのデータの収集
この節では、dbx からコレクタを実行する方法、また dbx 内の collector コマンドで使用できる各サブコマンドについて説明します。
% dbx program
(dbx) collector subcommand
利用可能な collector サブコマンドの一覧を表示するには、次のコマンドを使用します。
(dbx) help collector
サブコマンドごとに collector コマンドを 1 つ使用する必要があります。
指定したサブコマンドに誤りがある場合は、警告メッセージが出力され、サブコマンドは無視されます。このあとに、collector の全サブコマンドをまとめます。
次のサブコマンドを、dbx 内で collector コマンドとともに使用して、コレクタにより収集されるデータの種類を制御できます。実験がアクティブな場合は、警告メッセージが出力され、サブコマンドは無視されます。
時間ベースのプロファイルデータの収集を制御します。option に使用できる値は次のとおりです。
on - デフォルトのプロファイル間隔 (10 ミリ秒) で時間ベースのプロファイルを有効にします。
off - 時間ベースのプロファイルを無効にします。
timer interval - プロファイル間隔を設定します。interval に使用できる値は次のとおりです。
on - デフォルトのプロファイル間隔 (約 10 ミリ秒) を使用します。
lo[w] - 低分解能のプロファイル間隔 (約 100 ミリ秒) を使用します。
hi[gh] - 高分解能のプロファイル間隔 (約 1 ミリ秒) を使用します。高分解能のプロファイルについては、「時間ベースのプロファイルに関する制限事項」を参照してください。
value - プロファイル間隔を value に設定します。value のデフォルトの単位はミリ秒です。value は、整数または浮動小数点数として指定できます。オプションとして、数値の後ろに接尾辞 m を付けてミリ秒単位を選択するか、u を付けてマイクロ秒単位を選択することができます。プロファイル間隔は、時間の分解能の倍数である必要があります。時間の分解能値よりも大きな値であっても倍数でない場合は、端数が切り捨てられます。時間の分解能値よりも小さな値の場合は、時間の分解能に設定されます。どちらの場合にも、警告メッセージが表示されます。
デフォルトの設定は約 10 ミリ秒です。
デフォルトでは、hwprofile サブコマンドを使用してハードウェアカウンタオーバーフローのプロファイルデータ収集が有効になっていないかぎり、コレクタは時間ベースのプロファイルデータを収集します。
ハードウェアカウンタオーバーフローのプロファイルデータの収集を制御します。ハードウェアカウンタオーバーフローのプロファイルをサポートしていないシステム上でこの機能を有効にしようとすると、dbx から警告メッセージが返され、コマンドは無視されます。option に使用できる値は次のとおりです。
on - ハードウェアカウンタオーバーフローのプロファイルを有効にします。デフォルトでは、通常のオーバーフロー値で cycles カウンタのデータが収集されます。
off - ハードウェアカウンタオーバーフローのプロファイルを無効にします。
list - 使用可能なカウンタの一覧を返します。一覧の説明については、「ハードウェアカウンタリスト」を参照してください。ハードウェアカウンタオーバーフローのプロファイル機能がシステムでサポートされていない場合は、dbx から警告メッセージが返されます。
counter counter_definition... [, counter_definition ] – カウンタの定義は次の形式です。
[+]counter_name [~ attribute_1=value_1]...[~ attribute_n =value_n][/ register_number][,interval ]
ハードウェアカウンタの name を選択し、そのオーバーフロー値を interval に設定します。オプションとして、追加のハードウェアカウンタ名を選択し、それらのオーバーフロー値を指定された間隔に設定します。オーバーフロー値は次のいずれかです。
on または NULL 文字列 - デフォルトのオーバーフロー値で、ほかの引数を指定せずに collect -h を入力することによって判別できます。
hi[gh] - 選択したカウンタの高分解能値で、デフォルトのオーバーフロー値の約 1/10 です。旧バージョンのソフトウェアとの互換を図るため、h の省略形もサポートされています。
lo[w] - 選択したカウンタの低分解能値で、デフォルトのオーバーフロー値の約 10 倍です。
interval - 特定のオーバーフロー値で、10 進数または 16 進数形式の正の整数です。
複数のカウンタを指定する場合、それらのカウンタは異なるレジスタを使用する必要があります。使用するレジスタが同じである場合は警告メッセージが出力され、コマンドは無視されます。
ハードウェアカウンタがメモリーアクセスに関連するイベントをカウントする場合、カウンタ名の前に + 記号を付けて、カウンタのオーバーフローを発生させた命令の実際の PC の検索をオンにすることができます。検索が成功すると、PC と参照された有効アドレスがイベントデータパケットに格納されます。
デフォルトでは、コレクタは、ハードウェアカウンタのオーバーフロープロファイルデータを収集しません。ハードウェアカウンタオーバーフローのプロファイルが有効になっていて profile コマンドが指定されていない場合、時間ベースのプロファイルは無効となります。
「ハードウェアカウンタオーバーフローのプロファイルに関する制限事項」も参照してください。
同期待ちトレースデータの収集を制御します。option に使用できる値は次のとおりです。
on - デフォルトのしきい値で同期待ちトレースを有効にします。
off - 同期待ちトレースを無効にします。
ヒープトレースデータの収集を制御します。option に使用できる値は次のとおりです。
on - ヒープトレースを有効にします。
off - ヒープトレースを無効にします。
デフォルトでは、コレクタはヒープのトレースデータを収集しません。
スレッドアナライザ用に、データ競合検出またはデッドロック検出のデータを収集します。次のいずれかの値を指定できます。
off – スレッドアナライザのデータ収集を無効にします。
all – すべてのスレッドアナライザデータを収集します。
race - データ競合検出データを収集します。
deadlock - デッドロックと潜在的デッドロックのデータを収集します。
スレッドアナライザの詳細は、『Oracle Solaris Studio 12.3: スレッドアナライザユーザーズガイド』および tha.1 のマニュアルページを参照してください。
標本収集モードを制御します。option に使用できる値は次のとおりです。
periodic - 定期的な標本収集を有効にします。
manual - 定期的な標本収集を無効にします。手動の標本収集は有効のままです。
デフォルトでは、標本収集間隔 value が 1 秒での定期的な標本収集が有効となります。
dbx がターゲットプロセスを停止したときに、標本を記録するかどうかを制御します。キーワードの意味は、次のとおりです。
on - dbx がターゲットプロセスを停止するたびに標本が記録されます。
off - dbx がターゲットプロセスを停止したときに標本は記録されません。
デフォルトでは、dbx がターゲットプロセスを停止したとき、標本が記録されます。
次のサブコマンドを、dbx 内で collector コマンドとともに使用して、コレクタによる実験データの収集を制御できます。実験がアクティブな場合は、警告メッセージが出力され、サブコマンドは無視されます。
データ収集を無効にします。プロセスが実行中でデータが収集されている場合、その実験が終了し、データ収集は無効になります。プロセスが動作中でデータ収集が無効になっている場合、警告が出され、このサブコマンドは無視されます。プロセスが動作していない場合は、以降の実行のデータ収集が無効になります。
データ収集を有効にします。プロセスが動作していてデータ収集が無効であった場合、データ収集が有効になって新しい実験が開始されます。プロセスが動作中でデータ収集が有効になっている場合、警告が出され、このサブコマンドは無視されます。プロセスが動作していない場合は、以降の実行のデータ収集が有効になります。
プロセスの動作中、データ収集は何回でも有効にしたり、無効にしたりできます。データ収集を有効にするたびに、新しい実験が作成されます。
実験を開いたまま、データの収集を一時停止します。コレクタが一時停止している間、標本ポイントは記録されません。標本は一時停止の前に生成され、再開直後に別の標本が生成されます。データの収集がすでに一時停止されている場合、このサブコマンドは無視されます。
pause が実行されたあとに、データ収集を再開します。データ収集中は、このサブコマンドは無視されます。
name のラベルが付いた標本パケットを記録します。このラベルは、パフォーマンスアナライザの「タイムラインの詳細」タブに表示されます。
次のサブコマンドを、dbx 内で collector コマンドとともに使用して、実験の格納オプションを定義できます。実験がアクティブな場合は、警告メッセージが出力され、サブコマンドは無視されます。
実験を保管するためのモードを設定します。 mode に使用できる値は次のとおりです。
on - ロードオブジェクトを通常の方法で保管します。
off - ロードオブジェクトを保管しません。
copy - 通常の保管に加えて、ロードオブジェクトを実験にコピーします。
異なるマシンに実験を移動するか、別のマシンから実験を読み取る場合は、ロードオブジェクトのコピーを有効にする必要があります。実験がアクティブな場合、警告が出され、このコマンドは無視されます。このコマンドを使用しても、ソースファイルまたはオブジェクトファイルは実験にコピーされません。
記録するプロファイルデータの量を valueM バイトに制限します。この制限は、時間ベースのプロファイルデータ、ハードウェアカウンタオーバーフローのプロファイルデータ、および同期待ちのトレースデータの合計に適用されますが、標本ポイントには適用されません。この制限値は概数にすぎないので、この値を超えることは可能です。
制限に達すると、それ以上のプロファイルデータは記録されませんが、実験はオープンのままで標本ポイントの記録は継続します。
デフォルトでは、記録されるデータサイズに制限はありません。
実験の格納先を指定します。実験がアクティブな場合、警告が出力され、このコマンドは無視されます。option に使用できる値は次のとおりです。
directory directory-name - 実験と実験グループの格納先のディレクトリを設定します。指定したディレクトリが存在しない場合、警告が出され、このサブコマンドは無視されます。
experiment experiment-name - 実験の名前を設定します。指定した実験名の末尾が .er でない場合、警告が出され、このサブコマンドは無視されます。実験名とコレクタにおける実験名の取り扱いについての詳細は、「収集データの格納場所」を参照してください。
group group-name - 実験グループの名前を設定します。指定したグループ名の末尾が .erg でない場合、警告が出され、このサブコマンドは無視されます。グループがすでに存在する場合は、実験がグループに追加されます。ディレクトリ名が store directory サブコマンドで設定され、グループ名が絶対パスでない場合、グループ名の前にディレクトリ名が付きます。
次のサブコマンドを、dbx 内で collector コマンドとともに使用して、コレクタ設定と実験状態についてのレポートを取得できます。
すべてのコレクタ制御の、現在の設定を表示します。