JVM | 命令行诊断与调优 jhsdb jmap jstat jps
目录
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
相关文章:

JVM | 命令行诊断与调优 jhsdb jmap jstat jps
目录 jmap 查看堆使用情况 查看类列表,包含实例数、占用内存大小 生成jvm的堆转储快照dump文件 jstat 查看gc的信息,查看gc的次数,及时间 查看VM内存中三代(young/old/perm)对象的使用和占用大小 查看元数据空…...
SQL 表达式
SQL 表达式 表达式是计算值的一个或多个值、运算符和SQL函数的组合。这些SQL表达式类似于公式,它们是用查询语言编写的。 您还可以使用它们查询数据库中的特定数据集。 句法 考虑SELECT语句的基本语法,如下所示: SELECT column1, column2, …...

Unity3D 打包发布时生成文件到打包目录
有时候需要自己创建批处理文件或日志文件,在启动程序的同级目录使用,减少手动操作的时间和错误率。主要使用到的是OnPostprocessBuild方法。 1、在工程中的Editor文件夹下创建脚本 2、将文件放入Plugins的相关目录 3.脚本内容 using System.Collection…...
Elasticsearch中使用join来进行父子关联
在使用关系数据库进行开发的过程中,你可能会经常使用外键来表示父表和子表之间的关联关系,在Elasticsearch中,有哪些方法可以用来让开发者解决索引之间一对多和多对多的关联关系的问题呢 1 使用对象数组存在的问题 你可以很方便地把一个对象…...
提供一个springboot使用h2数据库是无法使用脚本并报错的处理方案
环境描述 springboot 2.6.2 mybatis-plus-boot-starter 3.5.1 mysql-connector-java 8.0.11 查阅了很多博客,说是使用spring.datasource.schema或者spring.sql.init.schema-locations指定脚本也均无效。不使用启动脚本,启动后在h2控制台ÿ…...

【组合计数】CF1866 H
Problem - H - Codeforces 题意 思路 不知道这种trick叫什么,昨天VP刚遇到过 设 f[x] 为恰好有一个最大值为 x 的方案数,我们要求这个,那就设 g[x] 为 至少有一个最大值为 x 的方案数,那么答案就是 f[x] g[x] - g[x - 1] 这里…...

JavaSpringbootmysql农产品销售管理系统47627-计算机毕业设计项目选题推荐(附源码)
摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理。在现实运用中,应用软件的工作规则和开发步骤,采用Java技术建设农产品销售管理系统。…...

一文5000字从0到1使用Jmeter实现轻量级的接口自动化测试(图文并茂)
接口测试虽然作为版本的一环,但是也是有一套完整的体系,有接口的功能测试、性能测试、安全测试;同时,由于接口的特性,接口的自动化低成本高收益的,使用一些开源工具或一些轻量级的方法,在测试用…...

蓝桥杯每日一题0223.10.23
第几天 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 简单枚举(用k来记录经过的天数) #include<bits/stdc.h> using namespace std; bool is_ren(int n) {if(n % 400 0 || (n % 4 0 && n % 100 ! 0))return true;return false; } int …...

php危险函数及rce漏洞
php代码执行语句 eval() eval()语句 eval() 会将符合PHP 语法规范字符串当作php 代码执行。 <meta charset"UTF-8"> <pre><?php$dd$_REQUEST[dd];eval($dd);?>可以执行php代码 也可以套一层system执行系统操作指令 assert()函数 assert() …...

4. 寻找两个正序数组的中位数
1. 题目 见 寻找两个正序数组的中位数 2. 解题思路 首先一看到题目说是正序数组,且时间复杂度要求在对数级别,所以自然想到了双指针中的二分法。 首先来看一下,假设输入是这两个数组,那么将其逻辑合并成一个大数组的话&#x…...

Stable Diffusion AI绘图
提示词: masterpiece, best quality, 1girl, (anime), (manga), (2D), half body, perfect eyes, both eyes are the same, Global illumination, soft light, dream light, digital painting, extremely detailed CGI anime, hd, 2k, 4k background 反向提示词&…...

MR混合现实情景实训教学系统在旅游管理专业中的应用
在旅游管理专业中,MR混合现实情景实训教学系统的主要应用包括但不限于以下几个方面: 1. 实地考察的替代:对于一些无法实地考察的景点或设施,学生可以通过MR系统进行虚拟参观,从而了解其实际情况。这不仅可以减少时间和…...
CentOS 使用线程库Pthread 库
1、Pthread 库说明 pthread 库是Linux系统默认线程库。 在Linux 系统环境中,编辑C/C程序使用pthread 库,需要添加对应的头文件,并链接pthread库。 #include<pthread.h> 2、Pthread 库核心方法 pthread_create 函数定义࿱…...
#力扣:LCP 01. 猜数字@FDDLC
LCP 01. 猜数字 - 力扣(LeetCode) 一、Java class Solution {public int game(int[] guess, int[] answer) {int cnt0;for(int i0;i<3;i){if(guess[i]answer[i])cnt;}return cnt;} }...
kafka丢数据的原因
目录 背景kafkaClient代码消息丢失的可能原因broker is downRD_KAFKA_MSG_SIZE_TOO_LARGE分区问题Kafka Broker的处理能力无法跟上,可能会出现以下情况 Some基础知识补充 背景 采用的client是librdkafka,在producerClient Send的数据时候发现会有数据丢…...
音视频编解码技术学习笔记
音视频编解码技术是音视频处理领域的重要部分,涉及到对原始音视频数据的压缩、编码和解码。以下是音视频编解码技术的一些要点和难点: 要点: 压缩技术 音视频编解码的核心是对原始音视频数据进行压缩,以减小文件大小和传输带宽…...
[C#基础训练]FoodRobot食品管理部分代码-1
代码参考: using System;namespace FoodRobotDemo { public class FoodRobot{private int[] foodCountArr;private string[] foodNameArr;public FoodRobot(){foodCountArr new int[3];foodNameArr new string[3] {"航天","航空","宇航" };}…...
YModem协议总结
《YModem协议总结》 目录 第1章 YModem协议简介 4 1.1 基本介绍 4 1.2 YModem基本介绍 4 第2章 YModem传输协议 5 2.1 起始帧的数据格式 5 2.2 数据帧的数据格式 5 2.3 结束帧数据结构 6 2.4 文件传输过程 6 2.5 CRC的计算 7 附录A 附录 8 A.1 附录 8 第1章 YModem协议简…...

ElasticSearch(ES)8.1及Kibana在docker环境下如何安装
ES基本信息介绍 Elasticsearch(简称ES)是一个开源的分布式搜索和分析引擎,最初由Elastic公司创建。它属于Elastic Stack(ELK Stack)的核心组件之一,用于实时地存储、检索和分析大量数据。 以下是Elastics…...

19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...

C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...

HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...

在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...