当前位置: 首页 > 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…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...