当前位置: 首页 > news >正文

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 查看堆使用情况 查看类列表&#xff0c;包含实例数、占用内存大小 生成jvm的堆转储快照dump文件 jstat 查看gc的信息&#xff0c;查看gc的次数&#xff0c;及时间 查看VM内存中三代&#xff08;young/old/perm&#xff09;对象的使用和占用大小 查看元数据空…...

SQL 表达式

SQL 表达式 表达式是计算值的一个或多个值、运算符和SQL函数的组合。这些SQL表达式类似于公式&#xff0c;它们是用查询语言编写的。 您还可以使用它们查询数据库中的特定数据集。 句法 考虑SELECT语句的基本语法&#xff0c;如下所示&#xff1a; SELECT column1, column2, …...

Unity3D 打包发布时生成文件到打包目录

有时候需要自己创建批处理文件或日志文件&#xff0c;在启动程序的同级目录使用&#xff0c;减少手动操作的时间和错误率。主要使用到的是OnPostprocessBuild方法。 1、在工程中的Editor文件夹下创建脚本 2、将文件放入Plugins的相关目录 3.脚本内容 using System.Collection…...

Elasticsearch中使用join来进行父子关联

在使用关系数据库进行开发的过程中&#xff0c;你可能会经常使用外键来表示父表和子表之间的关联关系&#xff0c;在Elasticsearch中&#xff0c;有哪些方法可以用来让开发者解决索引之间一对多和多对多的关联关系的问题呢 1 使用对象数组存在的问题 你可以很方便地把一个对象…...

提供一个springboot使用h2数据库是无法使用脚本并报错的处理方案

环境描述 springboot 2.6.2 mybatis-plus-boot-starter 3.5.1 mysql-connector-java 8.0.11 查阅了很多博客&#xff0c;说是使用spring.datasource.schema或者spring.sql.init.schema-locations指定脚本也均无效。不使用启动脚本&#xff0c;启动后在h2控制台&#xff…...

【组合计数】CF1866 H

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

JavaSpringbootmysql农产品销售管理系统47627-计算机毕业设计项目选题推荐(附源码)

摘 要 随着互联网趋势的到来&#xff0c;各行各业都在考虑利用互联网将自己推广出去&#xff0c;最好方式就是建立自己的互联网系统&#xff0c;并对其进行维护和管理。在现实运用中&#xff0c;应用软件的工作规则和开发步骤&#xff0c;采用Java技术建设农产品销售管理系统。…...

一文5000字从0到1使用Jmeter实现轻量级的接口自动化测试(图文并茂)

接口测试虽然作为版本的一环&#xff0c;但是也是有一套完整的体系&#xff0c;有接口的功能测试、性能测试、安全测试&#xff1b;同时&#xff0c;由于接口的特性&#xff0c;接口的自动化低成本高收益的&#xff0c;使用一些开源工具或一些轻量级的方法&#xff0c;在测试用…...

蓝桥杯每日一题0223.10.23

第几天 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 简单枚举&#xff08;用k来记录经过的天数&#xff09; #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. 解题思路 首先一看到题目说是正序数组&#xff0c;且时间复杂度要求在对数级别&#xff0c;所以自然想到了双指针中的二分法。 首先来看一下&#xff0c;假设输入是这两个数组&#xff0c;那么将其逻辑合并成一个大数组的话&#x…...

Stable Diffusion AI绘图

提示词&#xff1a; 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混合现实情景实训教学系统在旅游管理专业中的应用

在旅游管理专业中&#xff0c;MR混合现实情景实训教学系统的主要应用包括但不限于以下几个方面&#xff1a; 1. 实地考察的替代&#xff1a;对于一些无法实地考察的景点或设施&#xff0c;学生可以通过MR系统进行虚拟参观&#xff0c;从而了解其实际情况。这不仅可以减少时间和…...

CentOS 使用线程库Pthread 库

1、Pthread 库说明 pthread 库是Linux系统默认线程库。 在Linux 系统环境中&#xff0c;编辑C/C程序使用pthread 库&#xff0c;需要添加对应的头文件&#xff0c;并链接pthread库。 #include<pthread.h> 2、Pthread 库核心方法 pthread_create 函数定义&#xff1…...

#力扣:LCP 01. 猜数字@FDDLC

LCP 01. 猜数字 - 力扣&#xff08;LeetCode&#xff09; 一、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的处理能力无法跟上&#xff0c;可能会出现以下情况 Some基础知识补充 背景 采用的client是librdkafka&#xff0c;在producerClient Send的数据时候发现会有数据丢…...

音视频编解码技术学习笔记

音视频编解码技术是音视频处理领域的重要部分&#xff0c;涉及到对原始音视频数据的压缩、编码和解码。以下是音视频编解码技术的一些要点和难点&#xff1a; 要点&#xff1a; 压缩技术 音视频编解码的核心是对原始音视频数据进行压缩&#xff0c;以减小文件大小和传输带宽…...

[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&#xff08;简称ES&#xff09;是一个开源的分布式搜索和分析引擎&#xff0c;最初由Elastic公司创建。它属于Elastic Stack&#xff08;ELK Stack&#xff09;的核心组件之一&#xff0c;用于实时地存储、检索和分析大量数据。 以下是Elastics…...

常用Win32 API的简单介绍

目录 前言&#xff1a; 控制控制台程序窗口的指令&#xff1a; system函数&#xff1a; COORD函数&#xff1a; GetStdHandle函数&#xff1a; GetConsoleCursorInfo函数&#xff1a; CONSOLE_CURSOR_INFO函数&#xff1a; SetConsoleCursorInfo函数&#xff1a; SetC…...

VM及WindowsServer安装

目录 一.操作系统的简介及常用的操作系统 二.windows的安装 安装VMWare虚拟机 注意点一 ​编辑 注意点二 三.安装配置Windows Server 2012 R2 四、虚拟机的环境配置及连接 1. 主机连接虚拟机 2. 虚拟机环境配置及共享 3. 环境配置 一.操作系统的简介及常用的操作系…...

操作系统【OS】调度算法对比图

FCFS SJF 高响应比 时间片轮转 多级反馈队列 可抢占&#xff1f; √ √ √ 队列内算法不一定 不可抢占&#xff1f; √ √ √ 队列内算法不一定 特点&优点 公平实现简单有利于长作业不利于短作业有利于CPU繁忙作业不利于IO繁忙作业 因为CPU繁忙型进程即…...

音视频开发常见问题(五):视频黑屏

摘要 本文介绍了视频黑屏的可能原因和解决方案。主要原因包括用户主动关闭视频、网络问题和渲染问题。解决方案包括优化网络稳定性、确保视频渲染视图设置正确、提供清晰的提示、实时监测网络质量、使用详细的日志系统、开启视频预览功能、使用视频流回调、处理编解码问题、处…...

力扣 第 368 场周赛

2908. 元素和最小的山形三元组 I 给你一个下标从 0 开始的整数数组 nums 。 如果下标三元组 (i, j, k) 满足下述全部条件&#xff0c;则认为它是一个 山形三元组 &#xff1a; i < j < k nums[i] < nums[j] 且 nums[k] < nums[j] 请你找出 nums 中 元素和最小 的…...

文件的常用操作(读取压缩文件、解压、删除)

背景&#xff1a;最近做一个腾讯 cos 桶 文件的读写与本地数据库查询等操作 Retrofit 中文件下载的可以添加 Streaming StreamingGETObservable<ResponseBody> downloadCosFile(Url String downloadUrl);Streaming 的作用&#xff1a; 注解通常用于指示Retrofit或其他HTT…...

Simulation Studio - TRNSYS

简单记录一下最近学习 Simulation Studio的一些经历。 在学习之初&#xff0c;参考了一些大佬们的文章&#xff1a; Fortran学习笔记——1.基本内容 - 知乎 但是我主要的目的是使用Simulation Studio&#xff08;下文用SS代替&#xff09;编译自己的组件&#xff0c;看到Sim…...

python实现串口通信

python实现串口通信是一件简单的事情&#xff0c;只要通过pyserial模块就可以实现。 一、串口通信 1、什么是串口通信&#xff1f; 串口通信是一种通过串行接口&#xff08;Serial Port&#xff09;进行数据传输的通信方式。在串口通信中&#xff0c;数据位按顺序一位一位地传…...

No module named ‘cv2’ 解决方法

目录 解决方案1解决方案2 解决方案1 一般情况下的解决方案 在自己的虚拟环境里面安装就行 pip install opencv-python解决方案2 但是我遇到的情况没有这么简单,我使用了pip list | grep open 搜索含有open字样的opencv的包,结果显示已经安装了 我直接进入我的自定义的虚拟…...

65、内网安全-域环境工作组局域网探针方案

目录 案例1-基本信息收集操作演示案例2-网络信息收集操作演示案例3-用户信息收集操作演示案例4-凭据信息收集操作演示案例5-探针主机域控架构服务操作演示涉及资源 我们攻击内网一般是借助web攻击&#xff0c;直接进去&#xff0c;然后再去攻击内网&#xff0c;那么攻击的对象一…...