JVM | 命令行诊断与调优 jhsdb jmap jstat jps

news2024/9/28 15:23:49

目录

jmap

查看堆使用情况

查看类列表,包含实例数、占用内存大小

生成jvm的堆转储快照dump文件

jstat

查看gc的信息,查看gc的次数,及时间

查看VM内存中三代(young/old/perm)对象的使用和占用大小

查看元数据空间统计

查看年轻代对象的信息

查看年轻代对象的信息及其占用量

查看老年代对象的信息

查看老年代对象的信息及其占用量

查看最近一次GC统计和原因

jps

查看当前运行中java的进程

查看进程启动时传递给main()的参数

查看进程启动时的JVM参数

部分报错情况

Cannot connect to core dump or remote debug server. Use jhsdb jmap instead

ERROR: ptrace(PTRACE_ATTACH, ..) failed for 30865: Operation not permitted...


jmap

查看堆使用情况

jmap -heap [pid]

查看类列表,包含实例数、占用内存大小

jmap -histo [pid]

如果带上live则只统计活对象:

jmap -histo:live [pid]

生成jvm的堆转储快照dump文件

jmap -dump:format=b,file=dumpFileName [pid]

jstat

查看JVM统计信息,类装载、内存、垃圾收集、JIT编译等运行数据。

jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

查看gc的信息,查看gc的次数,及时间

jstat -gc [pid]

信息说明:

  • S0C:    年轻代中第一个survivor(幸存区)的容量 (字节)
  • S1C:    年轻代中第二个survivor(幸存区)的容量 (字节)
  • S0U:    年轻代中第一个survivor(幸存区)目前已使用空间 (字节)
  • S1U:    年轻代中第二个survivor(幸存区)目前已使用空间 (字节)
  • EC:      年轻代中Eden的容量 (字节)
  • EU:      年轻代中Eden目前已使用空间 (字节)
  • OC:     老年代的容量 (字节)
  • OU:     老年代目前已使用空间 (字节)
  • MC:     metaspace(元空间)的容量 (字节)
  • MU:     metaspace(元空间)目前已使用空间 (字节)
  • CCSC:当前压缩类空间的容量 (字节)
  • CCSU:当前压缩类空间目前已使用空间 (字节)
  • YGC:  从应用程序启动到采样时年轻代中gc次数
  • YGCT:从应用程序启动到采样时年轻代中gc所用时间(s)
  • FGC:  从应用程序启动到采样时老年代(全gc)gc次数
  • FGCT:从应用程序启动到采样时老年代(全gc)gc所用时间(s)
  • GCT:  从应用程序启动到采样时gc用的总时间(s)

查看VM内存中三代(young/old/perm)对象的使用和占用大小

jstat -gccapacity [pid]

信息说明:

  • NGCMN: 年轻代(young)中初始化(最小)的大小(字节)
  • NGCMX: 年轻代(young)的最大容量 (字节)
  • NGC:      年轻代(young)中当前的容量 (字节)
  • S0C:       年轻代中第一个survivor(幸存区)的容量 (字节)
  • S1C:       年轻代中第二个survivor(幸存区)的容量 (字节)
  • EC:         年轻代中Eden的容量 (字节)
  • OGCMN:老年代中初始化(最小)的容量大小 (字节)
  • OGCMX:老年代的最大容量(字节)
  • OGC:     老年代当前新生成的容量 (字节)
  • OC:        老年代的容量 (字节)
  • MCMN:   metaspace(元空间)中初始化(最小)的大小 (字节)
  • MCMX:   metaspace(元空间)的最大容量 (字节)
  • MC:        metaspace(元空间)当前新生成的容量 (字节)
  • CCSMN:最小压缩类空间大小
  • CCSMX:最大压缩类空间大小
  • CCSC:   当前压缩类空间大小
  • YGC:     从应用程序启动到采样时年轻代中gc次数
  • FGC:     从应用程序启动到采样时老年代(全gc)gc次数

查看元数据空间统计

jstat -gcmetacapacity [pid]

 信息说明:

  • MCMN:  最小元数据容量
  • MCMX:  最大元数据容量
  • MC:       当前元数据空间大小
  • CCSMN:最小压缩类空间大小
  • CCSMX:最大压缩类空间大小
  • CCSC:   当前压缩类空间大小
  • YGC:     从应用程序启动到采样时年轻代中gc次数
  • FGC:     从应用程序启动到采样时老年代(全gc)gc次数
  • FGCT:   从应用程序启动到采样时老年代(全gc)gc所用时间(s)
  • GCT:     从应用程序启动到采样时gc用的总时间(s)

查看年轻代对象的信息

jstat -gcnew [pid]

信息说明:

  • S0C:   年轻代中第一个survivor(幸存区)的容量 (字节)
  • S1C:   年轻代中第二个survivor(幸存区)的容量 (字节)
  • S0U:   年轻代中第一个survivor(幸存区)目前已使用空间 (字节)
  • S1U:   年轻代中第二个survivor(幸存区)目前已使用空间 (字节)
  • TT:      持有次数限制
  • MTT:   最大持有次数限制
  • DSS:   期望的幸存区大小
  • EC:     年轻代中Eden的容量 (字节)
  • EU:     年轻代中Eden目前已使用空间 (字节)
  • YGC:  从应用程序启动到采样时年轻代中gc次数
  • YGCT:从应用程序启动到采样时年轻代中gc所用时间(s)

查看年轻代对象的信息及其占用量

jstat -gcnewcapacity [pid]

信息说明: 

  • NGCMN: 年轻代(young)中初始化(最小)的大小(字节)
  • NGCMX: 年轻代(young)的最大容量 (字节)
  • NGC:      年轻代(young)中当前的容量 (字节)
  • S0CMX:  年轻代中第一个survivor(幸存区)的最大容量 (字节)
  • S0C:       年轻代中第一个survivor(幸存区)的容量 (字节)
  • S1CMX:  年轻代中第二个survivor(幸存区)的最大容量 (字节)
  • S1C:       年轻代中第二个survivor(幸存区)的容量 (字节)
  • ECMX:    年轻代中Eden的最大容量 (字节)
  • EC:         年轻代中Eden的容量 (字节)
  • YGC:      从应用程序启动到采样时年轻代中gc次数
  • FGC:      从应用程序启动到采样时old代(全gc)gc次数

查看老年代对象的信息

jstat -gcold [pid]

信息说明:

  • MC:     metaspace(元空间)的容量 (字节)
  • MU:     metaspace(元空间)目前已使用空间 (字节)
  • CCSC:压缩类空间大小
  • CCSU:压缩类空间使用大小
  • OC:     Old代的容量 (字节)
  • OU:     Old代目前已使用空间 (字节)
  • YGC:  从应用程序启动到采样时年轻代中gc次数
  • FGC:  从应用程序启动到采样时old代(全gc)gc次数
  • FGCT:从应用程序启动到采样时old代(全gc)gc所用时间(s)
  • GCT:  从应用程序启动到采样时gc用的总时间(s)

查看老年代对象的信息及其占用量

jstat -gcoldcapacity [pid]

 信息说明:

  • OGCMN:Old代中初始化(最小)的大小 (字节)
  • OGCMX:Old代的最大容量(字节)
  • OGC:     Old代当前新生成的容量 (字节)
  • OC:        Old代的容量 (字节)
  • YGC:     从应用程序启动到采样时年轻代中gc次数
  • FGC:     从应用程序启动到采样时old代(全gc)gc次数
  • FGCT:   从应用程序启动到采样时old代(全gc)gc所用时间(s)
  • GCT:     从应用程序启动到采样时gc用的总时间(s)

查看最近一次GC统计和原因

jstat -gccause [pid]

 信息说明:

  • LGCC:最后一次GC原因
  • GCC:  当前GC原因(No GC 为当前没有执行GC)

jps

查看当前运行中java的进程

jps

查看进程启动时传递给main()的参数

jps -m

查看进程启动时的JVM参数

jps -v

部分报错情况

Cannot connect to core dump or remote debug server. Use jhsdb jmap instead

 jdk版本原因所导致的,在jdk8以后需要加上 jhsdb 以运行(注意这里的格式):

jhsdb jmap --heap --pid [pid]

ERROR: ptrace(PTRACE_ATTACH, ..) failed for 30865: Operation not permitted...

新版的Linux系统(Ubuntu 11.04之后会出现这种问题)加入了 ptrace-scope 机制。这种机制为了防止用户访问当前正在运行的进程的内存和状态,而一些调试软件本身就是利用 ptrace 来进行获取某进程的内存状态的(包括GDB),所以在新版本的Linux系统,默认情况下不允许再访问了, 可以临时开启(注意权限):

echo 0 > /proc/sys/kernel/yama/ptrace_scope

永久修改:

vi  /etc/sysctl.d/10-ptrace.conf 
 
kernel.yama.ptrace_scope = 0 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1130244.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt生成PDF报告

文章目录 一、示意图二、实现部分代码总结 一、示意图 二、实现部分代码 //! 生成测试报告 void MainWindow::createPdf(QString filename, _pdf_msg_& msg, const QMap<QString, int>& ok, const QMap<QString, int>& err) {//QDir dir;if(!dir.exis…

mac安装jdk

1、下载jdk&#xff08;我的电脑要下载arm版&#xff0c;截图不对&#xff09; Java Downloads | Oraclehttps://www.oracle.com/java/technologies/downloads/#jdk17-mac 2、双击安装

【微信小程序】实现投票功能

一、后端 1、xmlsql <select id"voteList" resultMap"BaseResultMap" >select<include refid"Base_Column_List" />from t_oa_meeting_infowhere 11<if test"state!null">and state#{state}</if><if test&…

互联网Java工程师面试题·Spring篇·第四弹

目录 6、AOP 6.1、什么是 AOP&#xff1f; 6.2、什么是 Aspect&#xff1f; 6.3、什么是切点&#xff08;JoinPoint&#xff09; 6.4、什么是通知&#xff08;Advice&#xff09;&#xff1f; 6.5、有哪些类型的通知&#xff08;Advice&#xff09;&#xff1f; 6.6、指出…

06 MIT线性代数-列空间和零空间 Column space Nullspace

1. Vector space Vector space requirements vw and c v are in the space, all combs c v d w are in the space 但是“子空间”和“子集”的概念有区别&#xff0c;所有元素都在原空间之内就可称之为子集&#xff0c;但是要满足对线性运算封闭的子集才能成为子空间 中 2 …

嵌入式实时操作系统的设计与开发(消息)

消息 从概念上讲&#xff0c;消息机制和邮箱机制很类似&#xff0c;区别在于邮箱一般只能容纳一条消息&#xff0c;而消息则会包含一系列的消息。 系统定义了一个全局变量g_msgctr_header&#xff0c;通过它可以查找到任一已创建的消息容器。 每一个消息容器都可以根据其参数…

CentOS 7 安装Java环境

本文采用源码安装 1. 下载安装包 下载地址&#xff1a;jdk官网下载地址 下载linux64位tgz压缩包、官网下载需要登录oracle账号、可临时注册一个、几分钟搞定、或者查下其他方式获取安装包皆可。 2. 上传至centos7服务器 3. 安装 # tar zxvf jdk-8u381-linux-x64.tar.gz4.…

UE5 Blueprint发送http请求

一、下载插件HttpBlueprint、Json Blueprint Utilities两个插件是互相依赖的&#xff0c;启用&#xff0c;重启项目 目前两个是Beta的状态&#xff0c;如果你使用的平台支持就可以使用&#xff0c;我们的项目因为需要取Header的值&#xff0c;所有没法使用这两个插件&#xff0…

【AI视野·今日Robot 机器人论文速览 第五十九期】Fri, 20 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Fri, 20 Oct 2023 Totally 29 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Robotics Papers CCIL: Continuity-based Data Augmentation for Corrective Imitation Learning Authors Liyiming Ke, Yunchu Zhang, Abhay D…

vue3检测是手机还是pc端,监测视图窗口变化

1.超小屏幕&#xff08;手机&#xff09; 768px以下 2.小屏设备&#xff08;平板&#xff09; 768px-992px 3.中等屏幕&#xff08;旧式电脑&#xff09; 992px-1200px 4.大屏设备&#xff08;现代电脑&#xff09; 1200px以上 <script setup name"welcome"> i…

BurpSuite安装

下载 BurpSuite 下载 Java17 下载后确定版本 java -version获取启动器 密钥生成器 破解 将下载的 BurpSuite、启动器、密钥生成器&#xff0c;放入同一个目录 打开 CMD 进入该目录 启动密钥生成器 java -jar burp-keygen-scz.jar开启新的CMD&#xff0c;进入该目录 启动…

Spark_SQL-DataFrame数据写出以及读写数据库(以MySQl为例)

一、数据写出 &#xff08;1&#xff09;SparkSQL统一API写出DataFrame数据 统一API写法&#xff1a; 常见源写出&#xff1a; # cording:utf8from pyspark.sql import SparkSession from pyspark.sql.types import StructType, IntegerType, StringType import pyspark.sql.fu…

Android 下载文件后,调用系统文件管理器打开方式

如果是定制的系统&#xff0c;可能需要注意下有没有内置播放器或者浏览软件&#xff01;&#xff01;&#xff01; 看效果&#xff1a; 第一先上个文件类型判断的方法&#xff1a; //建立一个文件类型与文件后缀名的匹配表public static final String[][] MATCH_ARRAY{//{后缀…

CICD 流程学习(五)Jenkins后端工程构建

案例1&#xff1a;数据库服务部署 MySQL部署 #安装MySQL服务 [rootServices ~]# yum clean all; yum repolist -v ... Total packages: 8,265 [rootServices ~]# yum -y install mysql.x86_64 mysql-server.x86_64 mysql-devel.x86_64 ... Complete! [rootServices ~]# #启动…

【MySQL架构篇】SQL执行流程与缓冲池

文章目录 1. SQL执行流程2. 数据库缓冲池(Buffer Pool)2.1 缓冲池概述2.2 缓冲池如何读取数据2.3 查看和设置缓冲池的大小2.4 多个Buffer Pool实例2.5 引申问题 1. SQL执行流程 查询缓存&#xff1a;因为查询效率往往不高&#xff0c;所以在MySQL8.0之后就抛弃了这个功能解析器…

永中office电子表格使用函数求和

下载安装一个永中office个人版&#xff1b; 基本没用过这软件&#xff1b;看一下有没有电子表格&#xff1b; 有的&#xff1b; 再看一下电子表格有没有类似excel的函数功能&#xff1b; 看一下能不能sum()求和&#xff1b; 可以的&#xff1b;

百度Comate SaaS版本正式发布,助力开发者加速研发过程

百度Comate是基于文心大模型的智能代码助手&#xff0c;让开发者的编码更快、更好、更简单&#xff0c;为开发者自动生成完整的、且更符合实际研发场景的代码行或整个代码块&#xff0c;帮助每一位开发者轻松完成研发任务。10月17日召开的百度世界大会上&#xff0c;百度CTO王海…

CVE-2023-46227 Apache inlong JDBC URL反序列化漏洞

项目介绍 Apache InLong&#xff08;应龙&#xff09;是一站式、全场景的海量数据集成框架&#xff0c;同时支持数据接入、数据同步和数据订阅&#xff0c;提供自动、安全、可靠和高性能的数据传输能力&#xff0c;方便业务构建基于流式的数据分析、建模和应用。 项目地址 h…

SpringCloud微服务 【实用篇】| 认识微服务

目录 一&#xff1a;认识微服务 1. 微服务框架介绍 2. 服务架构演变 3. 微服务技术对比 4. SpringCloud 图书推荐&#xff1a;《巧用ChatGPT快速提高职场晋升力》 一&#xff1a;认识微服务 本课程学习于黑马&#xff0c;会通过分层次学习&#xff0c;分为三部分去讲解微…

BUUCTF刷题记录

[BJDCTF2020]Easy MD51 进入题目页面&#xff0c;题目提示有一个链接&#xff0c;应该是题目源码 进入环境&#xff0c;是一个查询框&#xff0c;无论输入什么都没有回显&#xff0c;查看源码也没什么用 利用bp抓包查看有没有什么有用的东西 发现响应的Hint那里有一个sql语句&…