JVM监控和调优常用命令jps|jstat|jinfo|jmap|jhat|jstack实战
1.JVM监控和调优的主要目的
-
性能优化:通过JVM调优,可以提高Java应用程序的性能,减少响应时间,提高吞吐量,以更好地满足用户需求。性能优化可以加快应用程序的执行速度,减少延迟,提高用户体验。
-
内存管理:JVM负责管理Java应用程序的内存。正确的内存管理可以避免内存泄漏和内存溢出等问题,确保应用程序在长时间运行时不会耗尽内存或导致性能下降。
-
垃圾回收优化:垃圾回收是JVM的核心功能之一,它负责释放不再使用的对象并回收内存。通过调整垃圾回收器的参数和策略,可以减少垃圾回收的频率和开销,提高应用程序的响应速度。
-
资源利用率:JVM调优可以帮助应用程序更有效地利用计算资源,包括CPU、内存和线程等。这有助于降低硬件成本,提高应用程序的伸缩性和性能。
-
稳定性和可靠性:JVM调优可以提高应用程序的稳定性,降低崩溃和故障的风险。通过监视和调整JVM的行为,可以减少应用程序中的内存泄漏、死锁和其他潜在问题。
-
成本效益:优化JVM性能可以减少硬件和运维成本。通过更好地利用现有资源,可以延长硬件的使用寿命,降低云计算服务的费用,从而在长期内节省资金。
总之,JVM调优是确保Java应用程序在生产环境中稳定、高性能运行的重要步骤。它需要深入理解Java虚拟机、垃圾回收机制、内存管理等方面的知识,以便根据应用程序的需求进行合适的调整和优化。通过JVM调优,可以提高应用程序的竞争力,提供更好的用户体验,并减少运维成本。
2.JVM监控和调优常用命令
2.1jps查看正在运行的Java进程
jps(Java Process Status):显示指定系统内所有的HotSpot虚拟机进程(查看虚拟机进程信息),可用于查询正在运行的虚拟机进程。
基本使用语法为:jps [-q] [-mlvV] [<hostid>]
-q:仅仅显示LVMID(local virtual machine id),即本地虚拟机唯一id。不显示主类的名称等
-m:输出虚拟机进程启动时传递给主类main()的参数
-l:输出应用程序主类的全类名 或 如果进程执行的是jar包,则输出jar完整路径
-v:列出虚拟机进程启动时的JVM参数。比如:-Xms20m -Xmx50m是启动程序指定的jvm参数。---V:表示显示版本信息
hostid:RMI注册表中注册的主机名。如果想要远程监控主机上的 java 程序,需要安装 jstatd
上述命令在同一个【】内的命令也可以组合使用,示例
bdpcloud@host154[/home/bdpcloud]$ jps -mlvV
10240 DbToHiveServer-5.0.jar conf/reldbtohive -Xms512m -Xmx1g -Xss64m -Xmn128m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m
2.2jstat查看JVM统计信息
jstat(JVM Statistics Monitoring Tool):用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。在没有GUI图形界面,只提供了纯文本控制台环境的服务器上,它将是运行期定位虚拟机性能问题的首选工具。常用于检测垃圾回收问题以及内存泄漏问题。
基本使用语法为:jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
查看可选项:jstat -options所有参数
类装载相关的:
-class:显示ClassLoader的相关信息:类的装载、卸载数量、总空间、类装载所消耗的时间等
JIT相关的:
-compiler:显示JIT编译器编译过的方法、耗时等信息
-printcompilation:输出已经被JIT编译的方法
垃圾回收相关的(重点):
-gc:显示与GC相关的堆信息。包括Eden区、两个Survivor区、老年代、永久代等的容量、已用空间、GC时间合计等信息。
-gccapacity:显示内容与-gc基本相同,但输出主要关注Java堆各个区域使用到的最大、最小空间。
-gcutil:显示内容与-gc基本相同,但输出主要关注已使用空间占总空间的百分比。
-gccause:与-gcutil功能一样,但是会额外输出导致最后一次或当前正在发生的GC产生的原因。
-gcnew:显示新生代GC状况
-gcnewcapacity:显示内容与-gcnew基本相同,输出主要关注使用到的最大、最小空间
-gcold:显示老年代GC状况
-gcoldcapacity:显示内容与-gcold基本相同,输出主要关注使用到的最大、最小空间
其他参数说明:
[-t] : 可以在输出信息前加上一个Timestamp列,显示程序的运行时间。单位:秒
[-h<lines>]:可以在周期性数据输出时,输出多少行数据后输出一个表头信息
<vmid>:jps中的JVM进程
[<count>]]:用于指定输出统计数据的周期,单位为毫秒。即:查询间隔
<count>]]:用于指定查询的总次数
jstat -class查看
bdpcloud@host154[/home/bdpcloud]$ jstat -class 7872
Loaded Bytes Unloaded Bytes Time
23203 45413.4 0 0.0 245.35
jstat -compiler查看
bdpcloud@host154[/home/bdpcloud]$ jstat -compiler 7872
Compiled Failed Invalid Time FailedType FailedMethod
27280 8 0 1544.76 1 com/alibaba/csp/sentinel/util/TimeUtil$1 run
jstat -printcompilation 查看(输出已经被JIT编译的方法)
bdpcloud@host154[/home/bdpcloud]$ jstat -printcompilation 7872
Compiled Size Type Method
27280 456 1 redis/clients/jedis/JedisFactory validateObject
jstat -gc查看(基于内存大小分析)
示例:
bdpcloud@host154[/home/bdpcloud]$ jstat -gc 7873
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
10752.0 10752.0 6792.1 0.0 153088.0 22379.3 175104.0 16293.0 53760.0 50572.8 7168.0 6508.4 14 5.373 2 4.079 9.452
也可以指定时间,次数,打印总次数输出
bdpcloud@host154[/home/bdpcloud]$ jstat -gc -t 7873 1000 100
参数说明:
S0C:表示年轻代(Young Generation)中的 Survivor 0 区的容量(以KB为单位)。
S1C:表示年轻代中的 Survivor 1 区的容量(以KB为单位)。
S0U:表示年轻代中 Survivor 0 区的使用量(以KB为单位)。
S1U:表示年轻代中 Survivor 1 区的使用量(以KB为单位)。
EC:表示年轻代中 Eden 区的容量(以KB为单位)。
EU:表示年轻代中 Eden 区的使用量(以KB为单位)。
OC:表示老年代(Old Generation)的容量(以KB为单位)。
OU:表示老年代的使用量(以KB为单位)。
MC:表示方法区(Metaspace)的容量(以KB为单位)。
MU:表示方法区的使用量(以KB为单位)。
CCSC:表示压缩类空间(Compressed Class Space)的容量(以KB为单位)。
CCSU:表示压缩类空间的使用量(以KB为单位)。
YGC:表示年轻代垃圾回收的次数。
YGCT:表示年轻代垃圾回收所花费的总时间
相关文章:
JVM监控和调优常用命令jps|jstat|jinfo|jmap|jhat|jstack实战
1.JVM监控和调优的主要目的 性能优化:通过JVM调优,可以提高Java应用程序的性能,减少响应时间,提高吞吐量,以更好地满足用户需求。性能优化可以加快应用程序的执行速度,减少延迟,提高用户体验。 内存管理:JVM负责管理Java应用程序的内存。正确的内存管理可以避免内存泄漏…...
chatglm2-6b在P40上做LORA微调 | 京东云技术团队
背景: 目前,大模型的技术应用已经遍地开花。最快的应用方式无非是利用自有垂直领域的数据进行模型微调。chatglm2-6b在国内开源的大模型上,效果比较突出。本文章分享的内容是用chatglm2-6b模型在集团EA的P40机器上进行垂直领域的LORA微调。 …...
WebGL 同时使用多幅纹理
目录 前言 编辑 示例代码 颜色矢量的分量乘法来计算两个纹素最终的片元颜色 注册事件响应函数:loadTexture(),最后一个参数是纹理单元编号。 请求浏览器加载图像: 配置纹理:loadTexture࿰…...
探索云计算和大数据分析的崛起:API行业的机遇与挑战【电商大数据与电商API接入】
I. 引言 随着云计算和大数据分析技术的快速发展,企业和个人对数据分析和处理的需求不断增加。在这个信息爆炸的时代,数据已成为企业决策和战略规划的重要基础。云计算提供了强大的计算和存储能力,使得大规模数据的处理和分析变得更加容易和高…...
android studio通过wifi、无线连接设备
AndroidStudio无线wifi调试设备_android studio wifi_zwylovemzj的博客-CSDN博客 使用adbWireless工具,其能够让手机用无线来取代USB连接而使用ADB工具 1. 手机需要与电脑在同一局域网内 2. 把adbWireless安装到手机上,并开启,上面…...
kafka 3.5 主题分区ISR伸缩源码
ISR(In-sync Replicas):保持同步的副本 OSR(Outof-sync Replicas):不同步的副本。最开始所有的副本都在ISR中,在kafka工作的过程中,如果某个副本同步速度慢于replica.lag.time.max.ms指定的阈值,则被踢出ISR存入OSR&am…...
1-centOS7搭建伪分布式
前言:虚拟机快照的使用 VMware Workstation 软件可以用快照进行迅速的虚拟机状态的切换 ※. 类似于虚拟机备份, 可以使用备份进行快速恢复。 比如没安装jdk之前拍摄快照来备份 ※. 若jdk没安装好或者jdk环境变量配置的有问题, 可以用安装之…...
对开源自动化测试平台MeterSphere的使用感触
1:该平台可以通过接口,参数,配置的维护,然后继续接口自动化“一键测试”,功能还是挺强大的,具体的使用需要研究 MeterSphere的官网:MeterSphere - 专业测试云 2:一键测试在生产环境…...
Spring boot 第一个程序
新建工程 选择spring-boot版本 右键创建类TestController: 代码如下: package com.example.demo; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springf…...
【SpringMVC】实现增删改查(附源码)
目录 引言 一、前期准备 1.1.搭建Maven环境 1.2.导入pom.xml依赖 1.3.导入配置文件 ①jdbc.properties ②generatorConfig.xml ③log4j2.xml ④spring-mybatis.xml ⑤spring-context.xml ⑥spring-mvc.xml ⑦修改web.xml文件 二、逆向生成增删改查 2.1.导入相关u…...
理财是什么?怎样学习理财?
大家好,我是财富智星,今天跟大家分享一下理财是什么?怎样学习理财的方法。 一、理财的基本原则 1、理财应注重投资而不是投机,要与时间为友。 让我们先考虑以下问题:什么样的回报才算是真正的高回报?假设有…...
华为云云耀云服务器L实例评测 | 开启OPC UA之旅
OPC Unified Architecture (OPC UA)是一种用于工业自动化的M2M协议(Machine-to-machine),具有平台独立性,在Windows和Linux上都可以运行。随着云服务在工业现场的不断普及,OPCUA服务也开始大量部署在云端。 本文以华为云云耀云服务器L为基础…...
帝国CMS灵动标签如何调用$ecms_hashur[‘ehref‘]函数
我们在二次开发时,后台调用链接就需要加上帝国CMS的$ecms_hashur[ehref]函数,这是帝国CMS后台的安全函数,防止外部直接访问后台页面,直接强制访问后台链接就会提示“非法来源”。 我的站长站分享下制作自定义php页面,用帝国CMS灵动标签如何调用$ecms_hashur[ehref]函数方…...
ES6 拓展(下)
一、函数的拓展 1.1、默认参数 在ES5中设置默认参数: function func(words, name) {name name || "闷墩儿";console.log(words, name); } func("大家好!我是"); func("大家好!我是", "憨憨");func(…...
TouchGFX之自定义触发条件和操作
通过TouchGFX Designer,您可以自己定义具有触发条件和操作的交互组件。 自定义容器创建自定义触发条件:通过自定义容器的属性选项卡添加自定义触发条件 使用交互系统发送自定义触发条件: 通过自定义容器的“交互”选项卡,创建新的…...
Linux防火墙(iptables)
一、linux的防火墙组成 linux的防火墙由netfilter和iptables组成。用户空间的iptables制定防火墙规则,内核空间的netfilter实现防火墙功能。 netfilter(内核空间)位于Linux内核中的包过滤防火墙功能体系,称为Linux防火墙的“内核…...
zookeeper教程
zookeeper教程 zookeeper简介zookeeper的特点及数据模型zookeeper下载安装zookeeper客户端命令zookeeper配置文件zookeeper服务器常用命令zookeeper可视化管理工具zkuizookeeper集群环境搭建zookeeper选举机制使用Java原生api操作zookeeper使用java zkclient库操作zookeeper使用…...
杭州快递物流展-2024长三角快递物流供应链与技术装备展览会(杭州)
2024快递物流创新高质量发展论坛暨 2024长三角快递物流供应链与技术装备展览会(杭州) 时间:2024年4月12-14 日 地点:杭州国际博览中心 ESYE长三角快递物流展是亚洲范围内超大规模的快递物流业展示平台,由于展会的需求 及扩大市场的影响力…...
CSP 202203-1 未初始化警告
答题 要注意是xi和yi的范围,yi可以是0为常数。 #include<iostream> using namespace std;int main() {int n,k;cin>>n>>k;bool*initializenew bool[n]{false};int result0,x,y;while(k--){cin>>x>>y;if(y&&!initialize[y-1…...
开发指导—利用组件插值器动画实现 HarmonyOS 动效
一. 组件动画 在组件上创建和运行动画的快捷方式。具体用法请参考通用方法。 获取动画对象 通过调用 animate 方法获得 animation 对象,animation 对象支持动画属性、动画方法和动画事件。 <!-- xxx.hml --><div class"container"> <di…...
基于carsim Simulink联合仿真和预瞄PID算法的轨迹跟踪模型】车辆路径跟踪包括主车...
基于carsim Simulink联合仿真和预瞄PID算法的轨迹跟踪模型】车辆路径跟踪包括主车的纵向和横向运动控制,纵向控制是通过调整轮毂电机的扭矩,使得车辆以期望的速度行驶;横向控制是通过调整主车的转向,使主车沿预期的轨迹行驶。 本模…...
告别黑苹果配置噩梦:5大核心优势让开源工具OpCore-Simplify成为新手救星
告别黑苹果配置噩梦:5大核心优势让开源工具OpCore-Simplify成为新手救星 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 黑苹果配置一直是…...
破局与重构:基于“智慧大脑”的企业全面数据化经营深度解构(PPT)
“在数字时代,企业最大的风险不是数据的匮乏,而是决策依然依赖经验直觉而非数据驱动。” —— 这份《数字化建设企业经营解决方案》文档,不仅是一份技术蓝图,更是对传统企业经营管理模式的一次彻底颠覆。它描绘了一个从“人治”迈…...
图像传感器噪声全解析:从原理到降噪实战
1. 图像传感器噪声的底层逻辑 每次按下手机快门时,你可能不知道图像传感器正在经历一场电子风暴。就像老式收音机的沙沙声,图像传感器也会产生各种"电子噪音"。这些噪声直接影响照片质量,尤其在弱光环境下更为明显。 我拆解过上百款…...
GLM-OCR性能基准测试报告:对比不同GPU型号上的推理速度与成本
GLM-OCR性能基准测试报告:对比不同GPU型号上的推理速度与成本 最近在做一个文档数字化的项目,需要处理大量扫描件和图片里的文字。选型的时候,自然就盯上了各种OCR模型。GLM-OCR作为国产大模型阵营里的一员,表现一直挺亮眼&#…...
弯腰系鞋带:动作虽细微,脊柱 “被折得濒临损伤”!
频繁弯腰系鞋带、捡拾地面物品、整理鞋盒、照顾幼儿,颈腰椎损伤风险显著。弯腰时腰椎瞬间弯曲,椎间盘承受压力骤增;单腿站立弯腰时,身体平衡依赖腰部肌肉,受力不均易导致拉伤;反复弯腰起身动作,…...
掌握微信聊天记录永久备份:从数据主权到智能记忆管理
掌握微信聊天记录永久备份:从数据主权到智能记忆管理 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChat…...
OpenClaw技能扩展实战:基于Qwen3-32B-Chat实现公众号自动发布
OpenClaw技能扩展实战:基于Qwen3-32B-Chat实现公众号自动发布 1. 为什么需要自动化公众号发布 作为一个技术博主,我每周都要在公众号发布2-3篇技术文章。最让我头疼的不是写作本身,而是发布前的繁琐流程:手动调整Markdown格式、…...
FLUX.1-dev-fp8-dit文生图GPU高性能部署:FP8+Triton内核优化推理延迟实测
FLUX.1-dev-fp8-dit文生图GPU高性能部署:FP8Triton内核优化推理延迟实测 最近在折腾AI图像生成,发现了一个性能怪兽——FLUX.1-dev-fp8-dit模型。这名字听起来有点复杂,简单说,它是一个专门为GPU优化过的文生图模型,主…...
Qwen-Image-2512-SDNQ使用心得:如何写出更有效的中文Prompt获得理想图片
Qwen-Image-2512-SDNQ使用心得:如何写出更有效的中文Prompt获得理想图片 1. 为什么中文Prompt需要特别优化? 在AI绘画领域,Prompt(提示词)的质量直接影响生成结果。对于中文用户而言,使用母语描述想象中的…...
