此页面为机器翻译。请阅读英文原文。 English

IBSurgeon 文库

如何为IBSurgeon性能分析收集Firebird跟踪信息

请注意:跟踪是安全的,可以在生产环境上启动,使用下面推荐的配置不会影响性能。

本说明描述了如何为使用原生 Firebird 的用户使用 IBSurgeon Performance Analysis(cc.ib-aid.com 订阅的一部分)(对于 HQbird 用户,可在界面的“性能”选项卡中使用)。

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
	#explain_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),然后运行(请使用您实际的 SYSDBA 密码替换 masterkey):

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,请将其压缩(使用标准 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 或 C:\HQbird\Firebird25),然后运行(请使用您实际的 SYSDBA 密码替换 masterkey):

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