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

java工具jconsole/jstat学习

参考视频【java】jvm指令与工具jstat/jstack/jmap/jconsole/jps/visualVM_哔哩哔哩_bilibili

一、jps

我们再windows和linux都可以看到哪些java进程。

 有小伙伴又会问了 这个类是java的 那其他的这么多进程18096 /8685 这些是啥啊 其实也是java进程,只不过是其他程序,比如idea。

 

二 、jconsole

由于是图形化界面更加清晰 其实jconsole = jstat+jstack

 点击test类,再点击连接,查看详细情况

/*** vmOptions* -Xms10m -Xmx10m* 最小    最大* -XX:HeapDumpOnOutOfMemoryError*/
public class TestJavaUtils {public static void main(String[] args) throws InterruptedException {int i=0;while (true){System.out.println("put success");Thread.sleep(1000);}}
}

 注意 要将vm options 设置为 -Xms10m -Xmx10m 否则基本看不到内存变化

 

 可以看到的最大值是9216=10M*1024*0.9 这个0.9就不多说了 有兴趣的自己百度。

这里还可以看到GC。

这个时候有小伙伴就会问了,我知道他GC了对我的工作有什么帮助呢? 我以前也有这个疑问,但是没人解答,这里我告诉你。

为什么我要你设置堆才10M。一半来说就都是1G 2G 甚至10G的内存。因为设置大了,你基本看不到GC,或者GC的时间很短

这里比如我才1分钟就有0.049s的GC时间了,而且我的代码非常简单,复杂10倍不过分吧,那就是0.5s的GC时间,一分钟有0.5s在GC那么是会影响你的正常程序的。例如这篇文章最后,就是GC时间太长CPU负载高,导致任务慢

hadoop中NameNode节点CPU使用量高 解决方案(亲测) - 爱码网

这时小伙伴又会说了 你再windows有图形界面,那我在服务器怎么看

三、jstat

参考文章 https://danny-jiang.blog.csdn.net/article/details/105804076

jstat 是JDK中提供的一个命令行工具,主要用来打印JVM 性能数据相关的统计数据。主要包含以下几个方面:

  • 垃圾回收(GC)方面数据

  • 编译(Compilation)相关数据

  • 类加载信息(Class Loader)

通过jps -l 找到 java的进程号 pid 然后

jstat -gcutil pid 10000 10  这个是看占的比例

jstat -gc pid 10000 10  这个看的是每个空间占的实际大小

jstat -gcnew  pid  只看年轻代

jstat -gcold  查看老年代 

参数解释:

-gc :打印相关的统计参数

-t:  在每行日志之前加上JVM的启动时间

pid : 目标Java进程的ID

10000: jstat命令执行间隔时间(milliseconds),10000表示每10s打印一行日志

10: jstat命令的执行次数,(和上面的时间间隔一起,表示jstat会每10s执行1次,总共执行10次). 可以不要

 这张图可以看到 E区伊甸园区数据不断增多,等到伊甸园区满了来个小GC,就把数据放到幸存者s0区,同时把S1区的数据放到老年代,这时算搞了一次YGC,多了快满的时候就会来个GC

等到老年代数据满了就会来一次OGC

 参数意义:

time :  JVM启动时间(单位为秒)

S0C :年轻代中S0区的容量 (字节)

S1C :年轻代中S1区的容量 (字节)

S0U :年轻代中S0区目前已使用空间 (字节)

S1U :年轻代中S1区目前已使用空间 (字节)

EC :年轻代中Eden区的容量 (字节)

EU :年轻代中Eden区目前已使用空间 (字节)

OC :老年代的容量 (字节)

OU :老年代目前已使用空间 (字节)

M : MetaspaceSize元空间

CCS : CompressedClassSpaceSize压缩类

YGC :从应用程序启动到采样时年轻代中GC次数

YGCT :从应用程序启动到采样时年轻代中GC所用时间(s)

FGC :从应用程序启动到采样时老年代(全GC)GC次数

FGCT :从应用程序启动到采样时老年代(全GC)GC所用时间(s)

GCT:从应用程序启动到采样时GC用的总时间(s)

这个用法在服务器上也是通用的。。。。通过查看GC次数和时间来检查某些服务是不是内存设置过小。

四、jstack

用法 jstack pid 

五、jmap

内存状态可以down下来

jmap -dump:file=filename pid 把内存状态down到本地

jmap -heap pid 打印内存信息

这里打印的比较人性化,其实和jstat差不多.

----后面有机会 找个案例来实战演练 

相关文章:

java工具jconsole/jstat学习

参考视频【java】jvm指令与工具jstat/jstack/jmap/jconsole/jps/visualVM_哔哩哔哩_bilibili 一、jps 我们再windows和linux都可以看到哪些java进程。 有小伙伴又会问了 这个类是java的 那其他的这么多进程18096 /8685 这些是啥啊 其实也是java进程,只不过是其他程…...

WSN_1 介绍;部分应用介绍

学习自书籍:Fundamentals of Wireless Sensor Networks. WSN 介绍 传感器 从基础角度说,传感器观测采集现实世界的一些数据。 另一个名称是 transducer 换能器,指传感器将一些形式的信号转换为其他形式的信号,如光敏传感器 光…...

linux常用命令介绍 05 篇——实际应用篇(用 cut、uniq等统计文档里每个关键词出现的次数)

linux常用命令介绍 05 篇——实际应用篇(用 cut、uniq等统计文档里每个关键词出现的次数)1. 先导文章——关于行过滤 和 列截取2. 关于单个统计单词个数2.1 grep2.2 wc3. 统计文档中每个关键词出现的次数3.1 先看文档内容 需求3.1.1 文档内容3.1.2 需求…...

大数据处理学习笔记1.7 Scala类与对象

文章目录零、本节学习目标一、类(一)类的定义(二)类的实例化二、单例对象(一)单例对象概念(二)案例演示三、伴生对象(一)伴生对象概念(二&#xf…...

Feign踩坑源码分析 -- 请求参数分号变逗号

一.案例 1.1.Post请求: http://localhost:8250/xx/task/test json格式参数: {"string": "a;b;c;d" } 1.2.controller代码: AutowiredDataSourceClientService dataSourceClientService;RequestMapping("/test"…...

nginx通用history模式刷新

注:1.通用配置只支持二段路由,二段及以上依然需要单独进行配置 2.所有location后面的路径,都需要使用通配符进行配置 location ^~ /phdp/ {try_files $uri $uri/ /phdp/index.html;index ruoyi.html index.html index.htm;}location ^~ /phdp-api/ {client_max_body_size 20m;p…...

Linux系统安装:Zookeeper

目录 Zookeeper的安装 1、环境准备 2、上传 3、解压文件到opt/zookeeper目下 4、安装完后进入zookeeper,找到conf目录 5、复制zoo_sample.cfg 6、编辑zoo.cfg 7、复制一份会话,进入zookeeper安装目录,创建一个文件夹zkdata&#xff0…...

cocos2dx+lua学习笔记:UIPageView的使用

前言 本篇在讲什么 本篇简单介绍Lua篇cocos2dx中UIPageView的相关内容 仅介绍简单的应用,仅供参考 本篇适合什么 适合初学Cocos2dX的小白 适合想要在Cocos2dx-lua中使用UIPageView的人 本篇需要什么 对Lua语法有简单认知 对Cocos2dx-Lua有简单认知 Cocos2…...

MyBatis常见面试题汇总(超详细回答)

目录 1.什么是Mybatis? 2.Mybatis的优缺点? 3.#{} 和 ${} 的区别是什么? 4.xml 映射文件中有哪些标签? 5.模糊查询 like 语句该怎么写? 6.Mapper 接口的工作原理是什么?Mapper 接口里的方法,参数不同…...

Jvm调优实战笔记

一、基础命令jps 查看所有java进程jinfo 进程号 查看该线程相关信息3、jstat 统计信息(数据跟踪信息)jstat -gc 进程号 查看该线程在内存中每一块占用的大小jstat -gc 进程号 时间(毫秒) 更新频率4、jstack 跟踪线程jstack 进程号…...

JVM 全面了解

JVM包含两个子系统和两个组件,两个子系统为Class loader(类装载器)、Execution engine(执行引擎);两个组件为Runtime data area(运行时数据区)、Native Interface(本地接口)。 方法区:存储已被虚拟机加载的类元数据信息(元空间) 堆&#xf…...

阿里开源自研高性能核心搜索引擎 Havenask

去年12月,阿里开源了自研的大规模分布式搜索引擎 Havenask(内部代号 HA3)。  Havenask 是阿里巴巴内部广泛使用的大规模分布式检索系统,支持了淘宝、天猫、菜鸟、优酷、高德、饿了么等在内整个阿里的搜索业务&#…...

nginx日志服务之敏感信息脱敏

1. 创建实验资源 开始实验之前,您需要先创建实验相关资源。 日志服务之敏感信息脱敏与审计 2. 创建原始数据 本步骤将指导您如何创建NGINX模拟数据。 双击打开虚拟桌面的Firefox ESR浏览器。 在RAM用户登录框中单击下一步,并复制粘贴页面左上角的子…...

【uni-app教程】一、UniAPP 介绍

一、UniAPP 介绍 (1) 什么是 UniAPP? uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到 iOS,Android,HS,以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉》等多个平台&#…...

Splunk Real-time Search 的研究

最近客户想搞清Splunk real-time search 和related search 有啥区别,想两个都试试,看看效果。 为了更好的说明什么是real-time search, 先看一下: With real-time searches and reports, you can search events before they are indexed and preview reports as the event…...

SWM181 串口功能使用介绍

SWM181 串口功能使用介绍📌SDK固件包:https://www.synwit.cn/kuhanshu_amp_licheng/✨注意新手谨慎选择作为入门单片机学习。🌼开发板如下图: 📋SWM181描述上写了有4个串口,在数据手册上,将引脚…...

Stochastic Approximation 随机近似方法的详解之(三)Dvoretzky’s convergence theorem

定理内容 Theorem 6.2 (Dvoretzky’s Theorem). Consider a stochastic process wk1(1−αk)wkβkηkw_{k1}\left(1-\alpha_k\right) w_k\beta_k \eta_kwk1​(1−αk​)wk​βk​ηk​, 其中{αk}k1∞,{βk}k1∞,{ηk}k1∞\{\alpha_k\}^\infty_{k1},\{\beta_k\}^\infty_{k1},\…...

7个ES6解构技巧让代码更简洁

您是否厌倦了编写臃肿且难以阅读的代码?想要提升您的编码技能并使您的代码更具可读性和简洁性? 从解构对象和数组到使用默认值和展开运算符,我们将涵盖所有内容,现在,我们将准备好掌握干净简洁的编码艺术。 1.解构对…...

曾经被人们看成是异想天开的产业互联网,或许终将会实现

一波还未平息,一波又起。元宇宙的热度还未彻底散去,ChatGPT已经成为了名符其实的新风口。如果用一个概念来定义现在这样一个热点和风口频出的时代的话,我想,用产业互联网或许是再合适不过的了。对此,可能有人并不认同。…...

log4j控制台不打印日志的故障解决方案

前言 接管了别的项目组的一个代码,在IDAE调试程序的过程中,发现log4j日志居然没有打印在控制台上,日志相关代码也没有问题。 在网上搜索了一圈,总结了一下个人解决这个问题的流程。 流程 1. 判断用了什么配置文件 不知道是出…...

用Python手把手实现乘幂法:从理论到代码,5分钟搞定矩阵最大特征值计算

用Python手把手实现乘幂法:从理论到代码,5分钟搞定矩阵最大特征值计算 矩阵特征值计算是线性代数的核心问题之一,在机器学习、物理模拟和工程分析中无处不在。但当你面对一个实际项目时,真正需要的往往不是繁琐的数学推导&#xf…...

NaViL-9B多模态能力解析:从图像主体识别到图文联合推理实操手册

NaViL-9B多模态能力解析:从图像主体识别到图文联合推理实操手册 1. 平台概览 NaViL-9B是当前领先的原生多模态大语言模型,能够同时处理文本和视觉信息。不同于传统单一模态模型,它实现了文本与图像的深度融合理解,为用户提供了更…...

DAMOYOLO-S保姆级教学:Gradio自定义组件添加‘清空缓存’按钮实操

DAMOYOLO-S保姆级教学:Gradio自定义组件添加‘清空缓存’按钮实操 1. 引言:为什么需要“清空缓存”按钮? 如果你用过DAMOYOLO-S这个目标检测模型,可能会发现一个不大不小的问题:连续上传多张图片进行检测后&#xff…...

Fast-Android-Networking请求优先级设置终极指南:提升应用性能的10个技巧

Fast-Android-Networking请求优先级设置终极指南:提升应用性能的10个技巧 【免费下载链接】Fast-Android-Networking 🚀 A Complete Fast Android Networking Library that also supports HTTP/2 🚀 项目地址: https://gitcode.com/gh_mirr…...

Context Rot:AI Agent 变蠢的真相,是上下文管理失控

很多团队在做 AI Agent 时都经历过类似的困惑:Agent 刚启动时表现还不错,跑了 20 步之后开始犯低级错误,到 50 步就像换了个模型——胡编乱造、忘记之前的决策、重复做已经做过的事。第一反应通常是:模型不够强,换个更…...

RWKV7-1.5B-g1a企业应用案例:替代传统规则引擎做智能FAQ与文档摘要

RWKV7-1.5B-g1a企业应用案例:替代传统规则引擎做智能FAQ与文档摘要 1. 引言:企业文本处理的痛点与机遇 在传统企业IT系统中,FAQ系统和文档摘要功能通常依赖规则引擎实现。这种方案存在几个明显痛点: 维护成本高:每次…...

OpenClaw安全加固实践:Qwen3-32B私有镜像+本地防火墙配置

OpenClaw安全加固实践:Qwen3-32B私有镜像本地防火墙配置 1. 为什么需要安全加固? 当我第一次看到OpenClaw能够自动操作我的电脑时,既兴奋又担忧。兴奋的是它能够帮我完成重复性工作,担忧的是它本质上是一个拥有系统操作权限的AI…...

用 Google Stitch 重构设计系统

大多数 AI 设计工具在你尝试将它们接入真实产品工作流之前都感觉像玩具,然后一切都崩塌了。Google Stitch 有趣的地方在于它试图将设计视为可编程的表面,而不仅仅是一个漂亮的画布。 1、Google Stitch 到底是什么 如果忽略营销宣传,Stitch …...

Polars 2.0清洗效能天花板在哪?我们用金融/电商/物联网三大行业真实数据集压力测试后,终于敢说这句话

第一章:Polars 2.0清洗效能天花板在哪?我们用金融/电商/物联网三大行业真实数据集压力测试后,终于敢说这句话为精准定位 Polars 2.0 在真实业务场景下的清洗性能边界,我们构建了三类高保真数据集:金融领域(…...

禾赛年报图解:营收30亿,经调整净利5.5亿 成激光雷达行业首家全年GAAP盈利企业

雷递网 雷建平 3月24日禾赛科技(NASDAQ:HSAI;HKEX:2525)今日公布了2025年第四季度以及全年未经审计的财务数据。财报显示,禾赛2025年营收为30.28亿元,较上年同期的20.77亿元增长45.8%。禾赛2025年运营利润为1.68亿元&a…...