在启动时设置配置文件设置
在配置文件代理可以开始任何记录之前,必须设置配置文件设置。当您使用 JProfiler UI 连接时会发生这种情况。在某些情况下,要求配置文件代理在启动时知道配置文件设置。主要用例是:
离线分析
使用触发器或 API 记录数据并保存快照。在此模式下,JProfiler GUI 无法连接。有关更多信息,请参阅 离线分析帮助主题。在无头机器上使用 jpcontroller 进行分析
命令行实用程序 jpcontroller 可以代替 JProfiler GUI 以交互方式或使用非交互命令文件记录数据和保存快照。然而,jpcontroller 没有配置配置文件设置的功能,因此必须提前设置。远程附加到旧版 OpenJ9 和 IBM JVM
旧版 OpenJ9 和 IBM JVM 在 8u281、11.0.11 和 Java 17 之前无法在不危及被分析进程稳定性的情况下重新定义类,因此必须在启动时设置配置文件设置。JProfiler 中远程集成向导的“被分析 JVM”步骤会询问您 JVM 的类型,如果您在那里选择 旧版 OpenJ9 和 IBM JVM,向导将添加下面讨论的选项。
一般来说,在启动时设置配置文件设置是最有效的操作模式,因为需要执行的类重新定义次数最少。如果减少的便利性不是问题,它可以用于任何类型的配置文件会话。
在启动时设置配置文件设置
如果您使用集成向导,请在“本地或远程”步骤中选择 在远程计算机上 选项,然后在“配置同步”步骤中选择 在启动时应用配置 选项。然后,向导将添加与以下段落中讨论的相同选项。
如果您已在启动脚本中添加了 -agentpath
VM 参数以加载配置文件代理,则可以通过添加以下内容来设置配置文件设置
,config=<配置文件路径>,id=<会话 ID>
到 -agentpath
参数。完整的参数将如下所示:
-agentpath:/path/to/libjprofilerti.so=port=8849,nowait,config=/path/to/config,id=123
如果您使用 在进程启动后加载配置文件代理,您可以在交互执行中选择 离线模式 并在那里指定配置和 ID。或者,传递
jpenable
--offline
、--config
和 --id
参数以进行非交互执行。
准备配置文件
引用的配置文件可以是当前机器上 JProfiler 安装的配置文件,在这种情况下,根本不需要指定配置参数。JProfiler 配置文件位于
$HOME/.jprofiler15/jprofiler_config.xml
或
%USERPROFILE%\.jprofiler15\jprofiler_config.xml
,是 -agentlib
VM 参数的
config
选项的默认值。
通常,自动化分析应在不同的机器上执行,无法引用本地 JProfiler 配置文件。然后,您可以在本地机器上的 JProfiler UI 中准备一个包含配置文件设置的会话,通过 会话→导出会话设置 导出并传输到运行 JProfiler 的机器上。
会话 ID 可以在会话设置对话框的“应用程序设置”选项卡的右上角看到(请参见下面的截图)。如果导出的文件仅包含一个会话,则不需要指定 id
参数。
同步配置文件
完成初始设置后,您可能希望调整未来分析运行的配置文件设置。这需要每次进行修改时将配置文件复制到远程机器上。
JProfiler 中的远程会话具有“配置同步”功能,可以为您自动化此过程。
如果会话是通过 SSH 启动的,您可以通过 SSH 直接将配置文件复制到远程机器上。否则,您仍然可以将配置文件复制到可能挂载在远程机器上的本地目录中。最后,您可以执行任意命令,通过其他方式复制配置文件。