您现在的位置是:首页 > 文章详情

运维编排场景系列----下载JVM堆栈到OSS

日期:2019-09-05点击:506

场景介绍

jstack用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。在实际运行中,如果每次 dump都指向同一个问题,我们就可以确定问题的典型性。 此时我们需要把dump下载后做分析,本文主要介绍通过OOS下载JVM堆栈到OSS。

解决方案

我们准备一台已安装JAVA和JETTY的ECS实例。远程连接进入管理终端。启动Jetty。查看JAVA进程。
1

登录OOS控制台。如果您之前从未开通过OOS服务,请点击“立即开通”按钮,即可一键开通。OOS运维编排是安全免费的服务,请放心开通。
2

开通后进入运维编排界面,点击自定义模板,点击创建模板按钮。
3

在创建模板页面Yaml栏中粘贴以下模板。

FormatVersion: OOS-2019-06-01 Dsacription: Download JVM dump to OSS. Parameters: pid: Description: The ID of Process. Type: String jstackUrl: Description: Complete path of the jstack in linux instance. Type: String outputFile: Description: Complete path of the output file in linux instance. Type: String instanceId: Description: The ID of ECS Instance. Type: String MaxLength: 30 MinLength: 1 instanceRole: Description: The ramRole attached on the instance. Type: String destUrl: Description: Target directory for file copy in OSS. Type: String OOSAssumeRole: Description: The RAM role to be assumed by OOS. Type: String Default: OOSServiceRole RamRole: '{{ OOSAssumeRole }}' Tasks: - Name: runcommnd Action: ACS::ECS::RunCommand Properties: commandContent: '{{ jstackUrl }}/jstack -l {{ pid }} > {{ outputFile }}' instanceId: '{{ instanceId }}' commandType: RunShellScript - Name: copyInstanceFileToOSS Action: ACS::ECS::CopyLinuxInstanceFileToOSS Properties: instanceId: "{{ instanceId }}" instanceRole: "{{ instanceRole }}" srcUrl: "{{ outputFile }}" destUrl: "{{ destUrl }}" Outputs: result: Type: String ValueSelector: result Outputs: result: Type: String Value: "{{ copyInstanceFileToOSS.result }}"

输入模板名称,点击创建模板。
4

在自定义模板页面找到刚创建的模板,点击创建执行,选择自动执行,点击下一步。
5

参数设置页面需要输入以下参数:
6

参数说明:

  • pid: java进程ID
  • jstackUrl:jstack的路径
  • outputFile: 堆栈在实例中输出的文件的完整路径
  • instanceId:实例ID
  • instanceRole:挂载到实例的RAMRole名称
  • destUrl:OSS中存入堆栈的路径

确认参数无误后点击创建执行。在执行详情页面可以看到模板执行的详细过程。
7

执行完成后在OSS中查看堆栈文件。
8

堆栈文件部分内容如下:
9

欢迎使用OOS

OOS客户支持钉钉群:23330931
OOS管理控制台的链接
OOS帮助文档的链接

系列文章

主题文章

阿里云重磅发布云上自动化利器——运维编排OOS

最佳实践

玩转运维编排服务的权限:Assume Role+Pass Role

场景系列

运维编排场景系列----更新ECS镜像
运维编排场景系列-----给ECS实例自动打TAG
运维编排场景系列----从实例中拷贝文件到OSS
运维编排场景系列----给实例加到SLS机器组
运维编排场景系列----检测MFA功能状态
阿里云运维编排新功能:一键批量克隆ECS
运维编排场景系列-----每日统计多Region实例的运行状态
运维编排场景系列-----如何使用jq
运维编排场景系列----分批到机器上运行命令

原文链接:https://yq.aliyun.com/articles/717652
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章