如何在 linux 系统上进行 Jprofile(无 GUI)

Paw*_*mar 5 jprofiler

我有安装 jprofiler 的 Linux 系统。

我必须一起分析位于同一 Linux 系统上的一台正在运行的服务器和一台客户端。我正在从客户端向服务器发送 100 多个不同的请求。

我的查询是:

  1. 如何在没有 GUI 干预的情况下自动化整个 jprofile 过程?
  2. 当开始 jprofiling 时,在 100 个请求提交给客户端之前还是之后?
  3. 在Linux系统中安装jprofiler后,我还没有找到config.xml (/root/.jprofiler8)。如何创建它?
  4. 如何在没有 GUI 的情况下创建会话?

为了分析 jprofiler 输出,我将在窗口系统上复制并使用 GUI jprofiler。

提前致谢,

编辑-1

我可以从下面自动执行分析程序步骤 4 和 5。以下所有步骤是否正确?

  1. 按照您在回复中的建议使用 GUI 配置会话(会话-> 集成向导-> 新建远程集成)

  2. 按照您在回复中的建议(会话-> 导出会话设置)使用 GUI 导出会话。

  3. 将 config.xml 从窗口复制到运行 jvm 的 Linux。

  4. 在 linux 系统中运行 jpenable 如下: jpenable --pid=8568 --noinput --offline --config=/home/myuser/config.xml --id=106

  5. 在 Linux 系统中运行 jpcontroller 如下所示并保存快照:jpcontroller 8568

  6. 将 Linux 系统的快照输出复制到窗口并使用 jprofiler 打开快照(会话-> 打开快照)以进行进一步分析。

编辑-2

-agentpath VM 参数添加到启动脚本中而不是使用我的第 4 步。现在,我可以启动我创建的会话以使用 JProfiler GUI 而不是使用我的第 5-6 步吗?选择并开始我的会话时收到连接错误。

Session -> Start Center -> Select and Start session (eg id="138" name="Remote application on linux1")

另外,我在 Linux 系统上运行了“netstat -a | grep 8849”,但没有得到任何结果/输出。

替换并执行第 4 步,如下所示:

linux1:/var/opt# su myuser

myuser@linux1:/var/opt> java -Xmx2g -agentpath:/opt/jprofiler8/bin/linux-x64/libjprofilerti.so=offline,id=138,config=/home/myuser/.jprofiler8/config.xml -类路径 /opt/jprofiler8/bin/agent.jar -jar /opt/myapp.jar

JProfiler> 离线分析模式。

JProfiler> 协议版本 41

JProfiler> 使用 JVMTI

JProfiler> 检测到 JVMTI 1.1 版。

JProfiler> 64 位库

JProfiler> 使用配置文件 /home/myuser/.jprofiler8/config.xml (id: 138)

JProfiler> 监听端口:8849。

JProfiler> 检测本地方法。

JProfiler> 可以重新转换类。

JProfiler> 可以重新转换任何类。

JProfiler> 本地库初始化

JProfiler> VM 已初始化

JProfiler> 使用动态检测

JProfiler> 时间测量:经过的时间

JProfiler> CPU 分析已启用

SLF4J:类路径包含多个 SLF4J 绑定。

我的应用程序启动

但是,如果我遵循以下步骤而不是使用我的步骤 1-2-3-4-5-6 并且它不是离​​线的,我就可以使用 JProfiler GUI:

第 1 步:转到Linux jprofiler

myuser@linux1:/opt/jprofiler8/bin> ./jpenable

选择一个JVM:

myapp.jar [29389] [1]

myapp2.jar [29228] [2]

1 请选择分析模式:

GUI模式(附上JProfiler GUI)[1,回车]

离线模式(使用配置文件设置分析设置)[2]

1 请输入分析端口

[31757]

您现在可以使用 JProfiler GUI 在端口 31757 上进行连接

第 2 步:转到窗口jprofiler

Session -> New session -> [Attach (Squire shape Button) -> Attach to profiled JVM (radio button) --> Host: linux1 --> Profilling port: 31757 --> OK]

Ing*_*gel 3

如果没有 GUI,您无法创建触发器。这个想法是通过调用在桌面计算机上本地配置会话

Session->Integration Wizards->New Remote Integration
Run Code Online (Sandbox Code Playgroud)

从主菜单。在“启动模式步骤”中选择“离线配置文件”。该向导将为您提供必须在远程端添加的 VM 参数,并创建一个可以在其上配置触发器的新会话。

之后,通过调用导出会话

Session->Export Session Settings
Run Code Online (Sandbox Code Playgroud)

从主菜单中将该配置文件复制到远程服务器上您在向导的“配置同步”步骤中指定的目录中。