このページは機械翻訳されています。英語の原文をお読みください。 English

IBSurgeon ライブラリ

IBSurgeonパフォーマンス分析のためにFirebirdトレースを収集する方法

ご注意ください:トレースは安全で、本番環境で開始できます。以下の推奨構成を使用する場合、パフォーマンスに影響を与えません。

この説明書では、バニラFirebirdのユーザー向けにIBSurgeon Performance Analysis(cc.ib-aid.comサブスクリプションの一部)の使用方法を説明します(HQbirdユーザーは、インターフェースの「Performance」タブで利用できます)。

Firebird 5.0、4.0、3.0のトレース

ステップ1 - 構成ファイル

以下の構成をfbtrace30.confファイルにコピーするか、ここから既製のファイルをダウンロードしてください。

Code
database
{
	enabled = true
	time_threshold = 100
	log_connections = true
	log_statement_finish = true
	log_errors = true
	log_initfini = false
	print_plan = true
	#print_plan = false
	print_perf = true
	max_sql_length = 65000
	max_arg_length = 240
	max_arg_count = 50
}

ファイルをスペースを含まないフォルダに保存してください。例:C:\temp\fbtrace30.conf、または /opt/fbtrace30.conf

ステップ2 - 構成のテスト

fbtracemgrを実行して、構成が機能することを確認します:

Windows

コマンドプロンプトを開き(cmd.exeを実行)、Firebirdのフォルダに移動し(C:\Program Files\Firebird\Firebird_3.0またはC:\HQbird\Firebird30の場合があります)、実行します(masterkeyの代わりに実際のSYSDBAパスワードを使用してください):

Code
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace30.conf

Linux

ターミナルを開き、Firebirdのbinフォルダ(/opt/firebird/binまたは/usr/local/bin)からfbtracemgrを実行します:

Code
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace30.conf

結果として、コマンドプロンプトに次のような出力が表示されます:

Code
Trace session ID 2 started
2021-05-26T10:23:48.5690 (2996:00000000018E0040) ATTACH_DATABASE
        C:\HQBIRD\FIREBIRD30.ECURITY3.FDB (ATT_6189, SYSDBA:NONE, NONE, )

Ctrl-Cでトレースを停止します(必要に応じて、その後Enterキーを押します)。

ステップ3 - ログの収集

前のステップでエラーが表示されない場合は、トレースを実行して出力をログファイルに収集します。例ではc:\temp\log1.logです:

Windows

Code
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace30.conf > c:\temp\log1.log

Linux

Code
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace30.conf >    log1.log

問題のあるSQLクエリを捕捉するために、しばらく実行したままにします(最低3〜4分、推奨は1時間)。その後、Ctrl-Cでfbtracemgrを中断します。

ステップ4. ログのアップロード

結果のログファイルをcc.ib-aid.comのTrace Visualizationにアップロードします。

ログファイルのサイズが20Mbを超える場合は、zip圧縮(標準のWindows zip、Linux zip、または7zip)して、圧縮されたログをアップロードしてください。

次のステップ

ログ分析の例はこちら:/articles/example-of-performance-analysis

Firebird 2.5のトレース

ステップ1 - 構成ファイル

以下の構成をfbtrace25.confファイルにコピーするか、ここから既製のファイルをダウンロードしてください。

Code
    <database>
        enabled true
	log_connections true
	log_statement_finish true
	log_errors true
	print_plan true
	print_perf true
	time_threshold 200
	max_sql_length 65000
	max_blr_length 500
	max_dyn_length 500
	max_arg_length 80
	max_arg_count 50
Code
    </database>

ファイルをスペースを含まないフォルダに保存してください。例:C:\temp\fbtrace25.conf、または/opt/fbtrace25.conf

ステップ2 - 構成のテスト

fbtracemgrを実行して、構成が機能することを確認します:

Windows

コマンドプロンプトを開き(cmd.exeを実行)、FirebirdのBinフォルダに移動し(C:\Program Files\Firebird\Firebird_2.5.inまたはC:\HQbird\Firebird25.inの場合があります)、実行します(masterkeyの代わりに実際のSYSDBAパスワードを使用してください):

Code
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace25.conf

結果として、コマンドプロンプトに次のような出力が表示されます:

Code
Trace session ID 2 started
2021-05-26T10:23:48.5690 (2996:00000000018E0040) ATTACH_DATABASE
        C:\HQBIRD\FIREBIRD30.ECURITY3.FDB (ATT_6189, SYSDBA:NONE, NONE, )

Linux

ターミナルを開き、Firebirdのbinフォルダ(/opt/firebird/binまたは/usr/local/bin)からfbtracemgrを実行します:

Code
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace25.conf

ステップ3 - ログの収集

画面にエラーが表示されない場合は、トレースを実行してデータの出力をファイルに収集します。例ではc:\temp\log1.logです:

Windows

Code
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace25.conf > c:\temp\log1.log

Linux

Code
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace25.conf > log1.log

問題のあるSQLクエリを捕捉するために、しばらく実行したままにします(最低3〜4分、推奨は1時間)。その後、Ctrl-Cでfbtracemgrを中断します。

ステップ4. 結果のアップロード

結果のログファイルをcc.ib-aid.comのTrace Visualizationにアップロードします。

ログファイルが20Mbを超える場合は、圧縮してください(標準のWindows zip、Linux gz、または7zip)。圧縮されたログをアップロードしてください。圧縮ログのサイズは1Gbに制限されており、それより大きいログファイルは削除されます。

ログインするにはアカウントが必要です。

ログイン後、「Traces」ウィジェットの右上隅にある「Upload」をクリックします:

トレースのアップロードを選択

次に、ディスク上のトレースログファイル(最大120Mb)を選択し、「Upload」をクリックします:

アップロードするトレースログを選択

アップロードには、インターネット接続のアップロード速度と一般的な接続状況に応じて1〜2分かかることがあります。圧縮ファイルはサイズが小さいため、より速くアップロードされます!

その後、アップロードしたファイルが「Processing」と表示されます:

処理には通常1〜2分かかります。処理のステータスを確認するには、「Refresh」ボタンを使用する必要があります。

処理が完了すると、パフォーマンスサマリーレポート(列「Trace summary report」、リンク「Html」)とトレースのグラフィカル表示(列とリンク「Graphs」)へのリンクが表示されます:

「Html」をクリックすると、トレースサマリーレポートを含む新しいページが表示されます。

レポートには、実行時間順(つまり、最も長いクエリ)、頻度順(最も頻繁なクエリ)、時間合計順(大部分の時間を占めたSQLクエリ)、フェッチ順(最もCPUを消費するクエリ)、読み取り順(ディスク読み取り)、書き込み順(ディスク書き込み)でソートされたトップクエリのリストが含まれています。

また、プロセスサマリーもあり、リソースの大部分を消費したアプリケーションを確認できます。

「Graphs」をクリックすると、トレースログのグラフィカル表示が表示され、毎分ごとにグループ化されたトップクエリ(クエリ実行の終了時刻による)が表示されます。

特定の時刻をクリックすると、トレースログからのトップクエリ、そのプラン、パラメータ、統計情報が表示されます:

次のステップ

ログ分析の例はこちら:/articles/example-of-performance-analysis