JVM常用排查命令

news2024/9/23 9:23:35

top命令

top命令是我们最常用的Linux命令之一,它可以实时的显示当前正在执行的进程的CPU使用率,内存使用率等系统信息。top -Hp pid 可以查看线程的系统资源使用情况。

vmstat命令

vmstat是一个指定周期和采集次数的虚拟内存检测工具,可以统计内存,CPU,swap的使用情况,它还有一个重要的常用功能,用来观察进程的上下文切换。字段说明如下:

r: 运行队列中进程数量(当数量大于CPU核数表示有阻塞的线程)

b: 等待IO的进程数量

  • swpd: 使用虚拟内存大小
  • free: 空闲物理内存大小
  • buff: 用作缓冲的内存大小(内存和硬盘的缓冲区)
  • cache: 用作缓存的内存大小(CPU和内存之间的缓冲区)
  • si: 每秒从交换区写到内存的大小,由磁盘调入内存
  • so: 每秒写入交换区的内存大小,由内存调入磁盘
  • bi: 每秒读取的块数
  • bo: 每秒写入的块数
  • in: 每秒中断数,包括时钟中断。
  • cs: 每秒上下文切换数。
  • us: 用户进程执行时间百分比(user time)
  • sy:内核系统进程执行时间百分比(system time)
  • wa: IO等待时间百分比
  • id: 空闲时间百分比

pidstat命令

pidstat 是 Sysstat 中的一个组件,也是一款功能强大的性能监测工具,top 和 vmstat 两个命令都是监测进程的内存、CPU 以及 I/O 使用情况,而 pidstat 命令可以检测到线程级别的。pidstat命令线程切换字段说明如下:

UID :被监控任务的真实用户ID。

TGID :线程组ID。

TID:线程ID。

cswch/s:主动切换上下文次数,这里是因为资源阻塞而切换线程,比如锁等待等情况。

nvcswch/s:被动切换上下文次数,这里指CPU调度切换了线程。

jps:JVM Process Status Tool

显示指定系统内所有的HotSpot虚拟机进程。

jps [options] [hostid]

-l : 输出主类全名或jar路径

-q : 只输出LVMID

-m : 输出JVM启动时传递给main()的参数

-v : 输出JVM启动时显示指定的JVM参数

jstat:JVM statistics Monitoring

是用于监视虚拟机运行时状态信息的命令,它可以显示出虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。常用

jstat [option] LVMID [interval] [count]

[option] : 操作参数

LVMID : 本地虚拟机进程ID

[interval] : 连续输出的时间间隔

[count] : 连续输出的次数

-printcompilation hotspot编译方法统计

-gcpermcapacity 永生代行为统计

-gcoldcapacity 统计旧生代的大小和空间

-gcold 统计旧生代的行为

-gcnewcapacity 新生代与其相应的内存空间的统计

-gccause 垃圾收集统计概述(同-gcutil)

-gcutil 同-gc,不过输出的是已使用空间占总空间的百分比 --使用最多的,下面是显示时每个标题的作用
  • S0C : survivor0区的总容量
  • S1C : survivor1区的总容量
  • S0U : survivor0区已使用的容量
  • S1C : survivor1区已使用的容量
  • EC : Eden区的总容量
  • EU : Eden区已使用的容量
  • OC : Old区的总容量
  • OU : Old区已使用的容量
  • PC 当前perm的容量 (KB)
  • PU perm的使用 (KB)
  • YGC : 新生代垃圾回收次数
  • YGCT : 新生代垃圾回收时间
  • FGC : 老年代垃圾回收次数
  • FGCT : 老年代垃圾回收时间
  • GCT : 垃圾回收总消耗时间
    使用jstat -gc pid 1000命令来对gc分代变化情况进行观察,1000表示采样间隔(ms).

jmap–jmap(JVM Memory Map)

命令用于生成heap dump文件,如果不使用这个命令,还阔以使用-XX:+HeapDumpOnOutOfMemoryError参数来让虚拟机出现OOM的时候·自动生成dump文件。jmap不仅能生成dump文件,还阔以查询finalize执行队列、Java堆和永久代的详细信息,如当前使用率、当前使用的是哪种收集器等。

常用命令为:jmap -heap pid

jmap [option] LVMID

dump : 生成堆转储快照

finalizerinfo : 显示在F-Queue队列等待Finalizer线程执行finalizer方法的对象

heap : 显示Java堆详细信息

histo : 显示堆中对象的统计信息

permstat : to print permanent generation statistics

F : 当-dump没有响应时,强制生成dump快照

可以使用jmap -heap pid 命令查询到新生代的Eden区大小,S0和S1区的大小(用来排查YGC的问题)。

jhat:JVM Heap Analysis Tool

命令是与jmap搭配使用,用来分析jmap生成的dump,jhat内置了一个微型的HTTP/HTML服务器,生成dump的分析结果后,可以在浏览器中查看。在此要注意,一般不会直接在服务器上进行分析,因为jhat是一个耗时并且耗费硬件资源的过程,一般把服务器生成的dump文件复制到本地或其他机器上进行分析。
想要了解更多技术文章请关注公众号“职谷智享”,每天关注的前50名小伙伴可领取200+互联网相关技术书籍。

个人公众号

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

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

相关文章

Android 拍照本地图片选择框架适配

前言 通常技术方案的选择、会带来后续一些不可控的东西,这也是没法避免的,程序开发者中同时面对、测试、领导、产品各种要求。同时在网络上查找的资料也只是很旧的,不一定适合新设备,需要推倒重新弄 1、解决方案通过意图选择器做…

如何关闭谷歌浏览器“提示密码泄露”的弹窗

使用谷歌浏览器的时候,经常看见图中的提示,大致意思是: 你的密码被外泄,建议你立即检查和修改密码。 只要你不修改密码,这个弹窗就会不停地弹出来提示你。 那么怎么关闭这个弹窗呢? 第一个方法很简单&am…

情感分析(文本分类)数据集汇总

想在推荐前对评论做一些情感分析方面的工作,参考网上其它博主的博客大概整理了一下情感分析方面的数据集的内容,大致分为两类——多分类和二分类(俺比较关注的),中英文的数据集都汇总整理了一下,后面会关注一下相关的比…

processing绘制笑脸

笑脸效果图: processing代码: void setup(){size(1000,1000);//Canvas sizebackground(#ffcc33);//Canvas background color } void draw(){ strokeWeight(12);//face-width12px fill(#ffffcc);//face arc(500,500,200,200,0,TWO_PI);//face-size strok…

智慧公厕:打造智慧城市的环卫明珠

在城市建设中,公共卫生设施的完善和智能化一直是重要环节。而智慧公厕作为智慧城市建设的重要组成部分,发挥着不可替代的作用。本文以智慧公厕源头实力厂家广州中期科技有限公司,大量精品案例现场实景实图,解读智慧公厕如何助力打…

【物联网应用案例】从0到N,智慧农业的数据价值

智慧农业全方位渗透到农业的每一个环节,云端解决方案更推动了研究人员、农艺师及农民间的密切协作,为研发企业提供了既经济又具扩展性的完美方案。 据IDC预计,到2036年,农场收集的数据量将增加800%以上,这凸显了农业数…

AUKFUKF的MATLAB程序,含源码

adaptive UKF与UKF效果对比 只有一个m文件,直接拖到MATLAB上面就能运行并输出结果了 部分结果 程序源码 % adaptive UKF与UKF效果对比 % author:Evand % 作者联系方式:evandjiang@qq.com(除前期达成一致外,付费咨询) % date: 2023-11-07 % Ver1 clear;clc;close all; %%…

FPGA之加法逻辑运算

由于FPGA需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC 那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构。查找表可以很好地满足这一要求,目前主流FPGA都采用了基于SRAM 工艺的查找表结构。LUT本质上就是一个RAM。它把…

KMP算法模板

KMP算法模板 自用,相关题解参考

每日一练:LeeCode-203. 移除链表元素 【链表+虚拟头结点】

每日一练:LeeCode-203. 移除链表元素 【链表虚拟头结点】 思路设置虚拟头结点 本文是力扣 每日一练:LeeCode-203. 移除链表元素 【链表虚拟头结点】 学习与理解过程,本文仅做学习之用,对本题感兴趣的小伙伴可以出门左拐LeeCode-20…

深圳牵头打造鸿蒙原生应用软件生态 | 百能云芯

深圳市工业和信息化局、深圳市政务服务和数据管理局于3月3日联合印发了《深圳市支持开源鸿蒙原生应用发展2024年行动计划》。这一计划旨在通过政策引导、市场推动、社会协同的方式,将深圳打造成一个鸿蒙原生应用软件生态的中心,推动鸿蒙系统在当地的发展…

选择正确的图片格式:JPEG、PNG、GIF、TIFF、BMP和WebP的全面对比

title: 选择正确的图片格式:JPEG、PNG、GIF、TIFF、BMP和WebP的全面对比 date: 2024/3/4 18:35:42 updated: 2024/3/4 18:35:42 tags: 图片格式JPEG压缩PNG透明度GIF动画TIFF印刷BMP位图WebP压缩 在数字化时代,图片是我们生活和工作中不可或缺的一部分。…

SpringCloud的Consul

0.介绍 Console是一款服务发现、健康检查、分布式配置中心,有单独的web可供配置和查看的Spring家族的一员。 1.下载 https://developer.hashicorp.com/consul/install?product_intentconsul 2.启动 consul agent-dev访问localhost:8500 3 Java使用注册中心 …

Android Stdio Execution failed for task ‘:app:compileDebugKotlin‘ 报错解决

具体报错信息如下: compileDebugJavaWithJavac task (current target is 1.8) and compileDebugKotlin task (current target is 17)jvm target compatibility should be set to the same Java version.很显然,这是一个版本冲突问题,compile…

【JavaEE进阶】使用云服务器实现Linux环境搭建

文章目录 🍃前言🌲Linux背景知识🚩Linux 是什么?🚩Linux发行版🚩Linux的优势 🎄Linux环境搭建🚩环境的搭建方式🚩使用云服务器 🎋使用终端软件连接到Linux&am…

ChatGPT数据分析应用——漏斗分析

ChatGPT数据分析应用——漏斗分析 ​ 漏斗分析在数据分析中也比较常用,主要是用于发现各个转化流程中哪个环节有问题。接下来我们让ChatGPT解释这个方法的概念并提供相应的案例。发送如下内容给ChatGPT。 ​ ChatGPT收到上述内容后,返回如下结果。 漏斗…

深入Kafka client

分区分配策略 客户端可以自定义分区分配策略, 当然也需要考虑分区消费之后的offset提交, 是否有冲突。 消费者协调器和组协调器 a. 消费者的不同分区策略, 消费者之间的负载均衡(新消费者加入或者存量消费者退出), 需要broker做必要的协调。 b. Kafka按照消费组管理消费者, …

为什么国内很多MCU公司,都在仿STM32?

做了单片机开发十多年了,STM32是我用过的单片机里面,最省心的。 用STM32做过的产品,至少10几个以上了。 其实不仅仅是STM32,还有STM8系列,也很稳。 我们无际单片机特训营好几个项目,都用了STM8和STM32系列。…

MySQL中有事务无法回滚的语句?

目录 0.从修改表结构语句开始 1.DDL(Data Definition Language) 数据定义语言 2.DCL(Data Control Language) 数据控制语言 3.在该事务还没提交时开启新事务 4.锁操作 5.行政声明语句 6.主从复制的从机操作 7.如何避免出现隐式提交导致的错误 0.从修改表结构语句开始 试…

Nuxt3:useFetch在服务端及客户端重复请求问题

一、问题描述 在页面setup中调用$http.get(封装了useFetch),发现不仅在服务端发送了接口请求,而且在客户端也重新发送了一遍接口请求,造成资源浪费及页面加载缓慢。 二、问题原因 首先看一下Nuxt 的useFetch文档&…