我有安装 jprofiler 的 Linux 系统。
我必须一起分析位于同一 Linux 系统上的一台正在运行的服务器和一台客户端。我正在从客户端向服务器发送 100 多个不同的请求。
我的查询是:
为了分析 jprofiler 输出,我将在窗口系统上复制并使用 GUI jprofiler。
提前致谢,
编辑-1
我可以从下面自动执行分析程序步骤 4 和 5。以下所有步骤是否正确?
按照您在回复中的建议使用 GUI 配置会话(会话-> 集成向导-> 新建远程集成)
按照您在回复中的建议(会话-> 导出会话设置)使用 GUI 导出会话。
将 config.xml 从窗口复制到运行 jvm 的 Linux。
在 linux 系统中运行 jpenable 如下: jpenable --pid=8568 --noinput --offline --config=/home/myuser/config.xml --id=106
在 Linux 系统中运行 jpcontroller 如下所示并保存快照:jpcontroller 8568
将 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]
如果没有 GUI,您无法创建触发器。这个想法是通过调用在桌面计算机上本地配置会话
Session->Integration Wizards->New Remote Integration
Run Code Online (Sandbox Code Playgroud)
从主菜单。在“启动模式步骤”中选择“离线配置文件”。该向导将为您提供必须在远程端添加的 VM 参数,并创建一个可以在其上配置触发器的新会话。
之后,通过调用导出会话
Session->Export Session Settings
Run Code Online (Sandbox Code Playgroud)
从主菜单中将该配置文件复制到远程服务器上您在向导的“配置同步”步骤中指定的目录中。