说明

  • 产品最近有一些问题,想着能够每隔一段时间抓取一下dump文件.
  • 需求 可以定期抓取, 需要注意磁盘空间的使用.

实现方法

  • 定时任务使用 crontab 计划任务来做
  • 预定义获取jvm dump的命令文件为: /deploy/getjvmdump
crontab -e 打开计划任务 增加如此内容.
5 */1 * * * /deploy/getjvmdump
没个准点的 第五分钟执行一遍命令

脚本内容

export JAVA_HOME=/app/server/runtime/java/x86_64-linux/
export PATH=/app/server/runtime/java/x86_64-linux/bin/:$PATH if [ ! -d /jvmdump ]; then
mkdir -p /jvmdump
fi dumptime=`date +%Y%m%d%H%M`
dumpid=`jps |grep caf-boot|awk '{print $1}' |head -n 1` if [[ ! $dumpid ]]; then
dumpid=`jps |grep PropertiesLauncher|awk '{print $1}' |head -n 1`
fi # 需要区分正常启动还是优雅启动
echo $dumpid
echo $dumptime
filename=$dumptime"_"$dumpid
echo $filename jcmd $dumpid GC.heap_dump /jvmdump/$filename.dump
gzip /jvmdump/$filename.dump
cd /jvmdump/
find /jvmdump/*.gz -mtime +1 -exec rm -rf {} \;
# 清理一天之前的dump文件. 注意这个命令要慎用 出问题需要跑路.

获取其他统计信息

export JAVA_HOME=/app/server/runtime/java/x86_64-linux/
export PATH=/app/server/runtime/java/x86_64-linux/bin/:$PATH if [ ! -d /jvmdump ]; then
mkdir -p /jvmdump
fi dumptime=`date +%Y%m%d%H%M`
dumpid=`jps |grep caf-boot|awk '{print $1}' |head -n 1` if [[ ! $dumpid ]]; then
dumpid=`jps |grep PropertiesLauncher|awk '{print $1}' |head -n 1`
fi # 需要区分正常启动还是优雅启动
echo $dumpid
echo $dumptime
filename=$dumptime"_"$dumpid
echo $filename jcmd $dumpid VM.uptime >>/jvmdump/trace_$filename.log
jcmd $dumpid VM.flags>>/jvmdump/trace_$filename.log
jcmd $dumpid Thread.print>>/jvmdump/trace_$filename.log
jcmd $dumpid GC.class_histogram >>/jvmdump/trace_$filename.log
jcmd $dumpid GC.heap_info >>/jvmdump/trace_$filename.log
# 抓取信息到指定路径..

计划任务方式定期获取jvm dump的方法的更多相关文章

  1. Yii2 提供可以用属性的方式去获取类的一个方法

    刚开始用 Yii 的小朋友可能对下面的写法非常疑惑: public function actionIndex() { $user = User::find()->where(['name'=&g ...

  2. 现代JVM内存管理方法的发展历程,GC的实现及相关设计概述(转)

    JVM区域总体分两类,heap区和非heap区.heap区又分:Eden Space(伊甸园).Survivor Space(幸存者区).Tenured Gen(老年代-养老区). 非heap区又分: ...

  3. 获取JVM的dump文件

    获取JVM的dump文件的两种方式 1. JVM启动时增加两个参数: #出现 OOME 时生成堆 dump: -XX:+HeapDumpOnOutOfMemoryError #生成堆文件地址: -XX ...

  4. MySQL统计信息以及执行计划预估方式初探

    数据库中的统计信息在不同(精确)程度上描述了表中数据的分布情况,执行计划通过统计信息获取符合查询条件的数据大小(行数),来指导执行计划的生成.在以Oracle和SQLServer为代表的商业数据库,和 ...

  5. Oracle查看SQL执行计划的方式

    Oracle查看SQL执行计划的方式     获取Oracle sql执行计划并查看执行计划,是掌握和判断数据库性能的基本技巧.下面案例介绍了多种查看sql执行计划的方式:   基本有以下几种方式: ...

  6. 获取JVM转储文件的Java工具类

    在上期文章如何获取JVM堆转储文件中,介绍了几种方法获取JVM的转储文件,其中编程方法是里面唯一一个从JVM内部获取的方法.这里就不演示了其他方法获取正在运行的应用程序的堆转储,重点放在了使用编程来获 ...

  7. php cli方式下获取服务器ip

    (未整理....) (1)php cli方式下获取服务器ip [php]  function getServerIp(){          $ss = exec('/sbin/ifconfig et ...

  8. php在cli和cgi方式下获取服务器ip的实例

    php cli方式下获取服务器ip php内核没有提供这样的命令,需要借助linux中的命令ifconfig来实现,如下两个函数代码: function getServerIp(){          ...

  9. JS(原生js和jq方式)获取元素属性(自定义属性),删除属性(自定义属性)

    JS(原生js和jq方式)获取元素属性(自定义属性),删除属性(自定义属性) 以下内容: 一.获取元素的属性 二.设置元素的属性 三.删除元素的属性 一.获取元素的属性 1-原生JS 获取属性 .ge ...

  10. JAVA代码中获取JVM信息

    一.JAVA中获取JVM的信息 原理,利用JavaSDK自带的ManagementFactory类来获取. 二.获取信息 1.获取进程ID @Test public void test1() { Ru ...

随机推荐

  1. 实践GoF的23的设计模式:SOLID原则(下)

    摘要:本文将讲述SOLID原则中的接口隔离原则和依赖倒置原则. ​本文分享自华为云社区<实践GoF的23的设计模式:SOLID原则(下)>,作者:元闰子. 在<实践GoF的23种设计 ...

  2. DevSecOps: CI/CD 流水线安全的最佳实践

    上一篇文章我们了解了 IAST 及其优势.工具类型以及重要性. 本期文章将为你介绍 CI/CD 流水线安全的最佳实践. ✦ ✦ CI/CD 流水线是指由持续集成(Continuous Integrat ...

  3. 火山引擎 DataTester:如何做 A/B 实验的假设检验

    A/B 实验的核心统计学理论是(双样本)假设检验,是用来判断样本与样本.样本与总体的差异是由 抽样误差 引起还是 本质差别 造成的一种统计推断方法. 假设检验,顾名思义,是一种对自己做出的假设进行数据 ...

  4. Java -jar 运行 报 MalformedInputException: Input length = 1

    Intellij IDEA 中运行正常,linux 运行正常, cmd 下运行 报:MalformedInputException: Input length = 1 微服务项目,在Nacos中做了配 ...

  5. byte[] 数组,创建的时候赋初始值

    C# //创建一个长度为10的byte数组,并且其中每个byte的值为0x08. byte[] myByteArray = Enumerable.Repeat((byte)0x08, 10).ToAr ...

  6. PS 创建网络去掉反冲增强

    一.当物料为反冲物料时,创建网络数据,希望去掉反冲标识 二.增强实施 在BAPI中传入反冲标识为空 在标准代码中发现反冲标识的赋值位置 判断当不传入反冲标识,将物料自带的反冲标识清空 定期更文,欢迎关 ...

  7. Educational Codeforces Round 96 (Rated for Div. 2) (A - C题个人题解)

    因为火锅导致错过的上分机会,赛后发现人均AC5题 1430A. Number of Apartments 暴力搜索 #include<bits/stdc++.h> using namesp ...

  8. java字符串与json互转

    开发中经常遇到将字符串转成json和字符串转成json属组的方法,网上搜到的方法,好多都是不好用的,今天这里记录一下方便自己今后查看,也提供给需要的人. 依赖: <!-- 处理json --&g ...

  9. uni-app 从入门到放弃(持续更新)

    https://blog.csdn.net/weixin_33940102/article/details/91460204

  10. python之HtmlTestRunner(三)中文字体乱码的情况

    使用HtmlTestRunner测试报告时,遇到中文字体无法识别的情况: 解决方案修改  \Lib\site-packages\HtmlTestRunner\result.py:def generat ...