Workbench的运维功能支持可视化地为Linux实例上的Java应用新增运维任务,例如新增Java堆分析、线程栈分析或性能分析任务。本文为您介绍Linux实例运维功能的具体操作和查看任务分析结果的具体方法。
前提条件
- ECS实例必须为Linux实例,且状态为运行中(Running)。 
- 已远程连接ECS实例。具体操作,请参见使用Workbench连接Linux实例。 
- 已开通OSS服务且在ECS实例同一地域创建存储空间(Bucket)。具体操作,请参见开通OSS服务、控制台创建存储空间。 
- 已安装Java JDK,并且有Java应用正在执行。 
背景信息
目前Workbench通过JavaDump界面对Java应用执行运维功能,目前支持Java线程栈分析、Java堆分析和Java性能分析。JavaDump基于Java JDK附带的Dump工具jstack、jmap完成日志的采集并生成日志文件,并将日志文件上传到OSS。
- Java线程栈分析和Java堆分析:Workbench对接应用诊断分析平台ATP,向ATP平台提供日志文件的OSS URL后,ATP会自动完成日志文件的下载和分析,并返回诊断分析链接。您通过ATP平台的链接即可获取相应的堆分析和线程栈分析结果。更多信息,请参见应用诊断分析平台ATP。 
- Java性能分析:单击分析结果,直接从OSS下载日志文件至本地。 
当您在OSS内存储文件时,OSS会根据您存储的文件类型、大小和时长收取一定的存储费用。当您不再需要保留某个Bucket时,可将其删除,以免产生额外费用。
操作步骤
- 在顶部菜单栏,选择功能 > 运维功能 > JavaDump。 
- 在JavaDump界面,查看运维列表、新增计划任务。 
- 单击新增计划任务,并在对话框中设置参数。  - 各参数详细说明如下表所示: - 配置项 - 说明 - (可选)进程号 - 填写Java应用的进程号,可以通过 - ps -ef | grep 进程名命令查询。- (必选)进程名 - 填写Java应用的进程名,可以通过 - ps -ef命令查询。- (必选)操作类型 - 目前支持ThreadDump、HeapDump和JperfDump三个选项,请根据实际需求选择。 - ThreadDump:Java线程栈分析。记录CPU信息,它是一个文本文件,用于保存Java应用中各线程在某一时刻的运行位置,即执行到哪一个类哪一个方法哪一行上。 
- HeapDump:Java堆分析。记录内存信息,它是一个二进制文件,用于保存某一时刻JVM堆中对象使用情况。 
- JperfDump:一个Java性能分析工具,用于收集和分析Java应用程序的性能数据,包括线程级别的性能分析、堆栈跟踪、CPU和内存监测等功能,帮助诊断和解决Java应用程序的性能问题。 
 - (必选)OSS bucket - 填写OSS的Bucket名称。您可以登录OSS管理控制台在Bucket列表中获取OSS Bucket名称。 说明- 需确保OSS Bucket所在地域和ECS实例是同一地域。 - (必选)Java路径 - 填写Java JDK的安装路径,例如 - /usr/bin,可以通过- which java命令查询。
- 单击确定。 
- 等待任务提交成功后,单击页面右上角的  图标,即可看到生成的运维任务。 图标,即可看到生成的运维任务。 
- 等待运维任务结束之后,单击结果列的分析。