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

JVM监控和调优常用命令jps|jstat|jinfo|jmap|jhat|jstack实战

1.JVM监控和调优的主要目的

  1. 性能优化:通过JVM调优,可以提高Java应用程序的性能,减少响应时间,提高吞吐量,以更好地满足用户需求。性能优化可以加快应用程序的执行速度,减少延迟,提高用户体验。

  2. 内存管理:JVM负责管理Java应用程序的内存。正确的内存管理可以避免内存泄漏和内存溢出等问题,确保应用程序在长时间运行时不会耗尽内存或导致性能下降。

  3. 垃圾回收优化:垃圾回收是JVM的核心功能之一,它负责释放不再使用的对象并回收内存。通过调整垃圾回收器的参数和策略,可以减少垃圾回收的频率和开销,提高应用程序的响应速度。

  4. 资源利用率:JVM调优可以帮助应用程序更有效地利用计算资源,包括CPU、内存和线程等。这有助于降低硬件成本,提高应用程序的伸缩性和性能。

  5. 稳定性和可靠性:JVM调优可以提高应用程序的稳定性,降低崩溃和故障的风险。通过监视和调整JVM的行为,可以减少应用程序中的内存泄漏、死锁和其他潜在问题。

  6. 成本效益:优化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微调 | 京东云技术团队

背景&#xff1a; 目前&#xff0c;大模型的技术应用已经遍地开花。最快的应用方式无非是利用自有垂直领域的数据进行模型微调。chatglm2-6b在国内开源的大模型上&#xff0c;效果比较突出。本文章分享的内容是用chatglm2-6b模型在集团EA的P40机器上进行垂直领域的LORA微调。 …...

WebGL 同时使用多幅纹理

目录 前言 ​编辑 示例代码 颜色矢量的分量乘法来计算两个纹素最终的片元颜色 注册事件响应函数&#xff1a;loadTexture&#xff08;&#xff09;&#xff0c;最后一个参数是纹理单元编号。 请求浏览器加载图像&#xff1a; 配置纹理&#xff1a;loadTexture&#xff0…...

探索云计算和大数据分析的崛起:API行业的机遇与挑战【电商大数据与电商API接入】

I. 引言 随着云计算和大数据分析技术的快速发展&#xff0c;企业和个人对数据分析和处理的需求不断增加。在这个信息爆炸的时代&#xff0c;数据已成为企业决策和战略规划的重要基础。云计算提供了强大的计算和存储能力&#xff0c;使得大规模数据的处理和分析变得更加容易和高…...

android studio通过wifi、无线连接设备

AndroidStudio无线wifi调试设备_android studio wifi_zwylovemzj的博客-CSDN博客 使用​​adbWireless​​工具&#xff0c;其能够让手机用无线来取代USB连接而使用ADB工具 1. 手机需要与电脑在同一局域网内 2. 把adbWireless安装到手机上&#xff0c;并开启&#xff0c;上面…...

kafka 3.5 主题分区ISR伸缩源码

ISR(In-sync Replicas)&#xff1a;保持同步的副本 OSR(Outof-sync Replicas)&#xff1a;不同步的副本。最开始所有的副本都在ISR中&#xff0c;在kafka工作的过程中&#xff0c;如果某个副本同步速度慢于replica.lag.time.max.ms指定的阈值&#xff0c;则被踢出ISR存入OSR&am…...

1-centOS7搭建伪分布式

前言&#xff1a;虚拟机快照的使用 VMware Workstation 软件可以用快照进行迅速的虚拟机状态的切换 ※. 类似于虚拟机备份&#xff0c; 可以使用备份进行快速恢复。 比如没安装jdk之前拍摄快照来备份 ※. 若jdk没安装好或者jdk环境变量配置的有问题&#xff0c; 可以用安装之…...

对开源自动化测试平台MeterSphere的使用感触

1&#xff1a;该平台可以通过接口&#xff0c;参数&#xff0c;配置的维护&#xff0c;然后继续接口自动化“一键测试”&#xff0c;功能还是挺强大的&#xff0c;具体的使用需要研究 MeterSphere的官网&#xff1a;MeterSphere - 专业测试云 2&#xff1a;一键测试在生产环境…...

Spring boot 第一个程序

新建工程 选择spring-boot版本 右键创建类TestController&#xff1a; 代码如下&#xff1a; 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…...

理财是什么?怎样学习理财?

大家好&#xff0c;我是财富智星&#xff0c;今天跟大家分享一下理财是什么&#xff1f;怎样学习理财的方法。 一、理财的基本原则 1、理财应注重投资而不是投机&#xff0c;要与时间为友。 让我们先考虑以下问题&#xff1a;什么样的回报才算是真正的高回报&#xff1f;假设有…...

华为云云耀云服务器L实例评测 | 开启OPC UA之旅

OPC Unified Architecture (OPC UA)是一种用于工业自动化的M2M协议(Machine-to-machine)&#xff0c;具有平台独立性&#xff0c;在Windows和Linux上都可以运行。随着云服务在工业现场的不断普及&#xff0c;OPCUA服务也开始大量部署在云端。 本文以华为云云耀云服务器L为基础…...

帝国CMS灵动标签如何调用$ecms_hashur[‘ehref‘]函数

我们在二次开发时,后台调用链接就需要加上帝国CMS的$ecms_hashur[ehref]函数,这是帝国CMS后台的安全函数,防止外部直接访问后台页面,直接强制访问后台链接就会提示“非法来源”。 我的站长站分享下制作自定义php页面,用帝国CMS灵动标签如何调用$ecms_hashur[ehref]函数方…...

ES6 拓展(下)

一、函数的拓展 1.1、默认参数 在ES5中设置默认参数&#xff1a; function func(words, name) {name name || "闷墩儿";console.log(words, name); } func("大家好&#xff01;我是"); func("大家好&#xff01;我是", "憨憨");func(…...

TouchGFX之自定义触发条件和操作

通过TouchGFX Designer&#xff0c;您可以自己定义具有触发条件和操作的交互组件。 自定义容器创建自定义触发条件&#xff1a;通过自定义容器的属性选项卡添加自定义触发条件 使用交互系统发送自定义触发条件&#xff1a; 通过自定义容器的“交互”选项卡&#xff0c;创建新的…...

Linux防火墙(iptables)

一、linux的防火墙组成 linux的防火墙由netfilter和iptables组成。用户空间的iptables制定防火墙规则&#xff0c;内核空间的netfilter实现防火墙功能。 netfilter&#xff08;内核空间&#xff09;位于Linux内核中的包过滤防火墙功能体系&#xff0c;称为Linux防火墙的“内核…...

zookeeper教程

zookeeper教程 zookeeper简介zookeeper的特点及数据模型zookeeper下载安装zookeeper客户端命令zookeeper配置文件zookeeper服务器常用命令zookeeper可视化管理工具zkuizookeeper集群环境搭建zookeeper选举机制使用Java原生api操作zookeeper使用java zkclient库操作zookeeper使用…...

杭州快递物流展-2024长三角快递物流供应链与技术装备展览会(杭州)

2024快递物流创新高质量发展论坛暨 2024长三角快递物流供应链与技术装备展览会(杭州) 时间&#xff1a;2024年4月12-14 日 地点&#xff1a;杭州国际博览中心 ESYE长三角快递物流展是亚洲范围内超大规模的快递物流业展示平台&#xff0c;由于展会的需求 及扩大市场的影响力…...

CSP 202203-1 未初始化警告

答题 要注意是xi和yi的范围&#xff0c;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 对象&#xff0c;animation 对象支持动画属性、动画方法和动画事件。 <!-- xxx.hml --><div class"container"> <di…...

树莓派入门

目录 前言系统烧录使用官方烧录工具选择操作系统选择存储卡配置 Win32DiskImager 有屏幕树莓派开机树莓派关机无屏幕树莓派开机获取树莓派IP地址通过路由器获取共享网络方式获取给树莓派配置静态IP地址查找默认网关分盘给树莓派的IP地址修改树莓派DHCP配置文件 ssh登录 让树莓派…...

算法模型嵌入式 Mendix应用的开发示例

一、前言 根据埃森哲最新一项调查&#xff0c;2023年67%的企业持续加大在技术方面的投入&#xff0c;其中数据和AI应用是重中之重。AI在企业内部应用这个话题已经保持了十多年的热度&#xff0c;随着ChatGPT为代表的生成式AI技术的出现&#xff0c;这一话题迎来又一波的高潮。…...

如何使用Cygwin编译最新版的Redis源码,生成适用于Windows的Redis

文章目录 一、准备Cygwin环境二、下载Redis源码三、编译redis-7.2.01. 执行make命令2. 重新执行make命令3. 再次执行make命令4. 将编译后的可执行文件及依赖放到同一个文件夹5. 测试编译生成的可执行程序 四、换其他redis版本重新编译1. 编译redis-7.0.122. 编译redis-6.2.133.…...

Linux 修改SSH端口

如果防火墙&#xff0c;或防火墙已经开启&#xff0c;需要先开放2222端口 firewall-cmd --add-port2222/tcp --permanent --zonepublic firewall-cmd --reload编辑文件 vim /etc/ssh/sshd_config&#xff1a; #Port 22 Port 2222 # 打开注释&#xff0c;并修改为以下值 Clien…...

Redis经典问题:缓存穿透

&#xff08;笔记总结自《黑马点评》项目&#xff09; 一、产生原因 用户请求的数据在缓存中和数据库中都不存在&#xff0c;不断发起这样的请求&#xff0c;给数据库带来巨大压力。 常见的解决方式有缓存空对象和布隆过滤器。 二、缓存空对象 思路&#xff1a;当我们客户…...

DEFORMABLE DETR: DEFORMABLE TRANSFORMERS FOR END-TO-END OBJECT DETECTION (论文解析)

DEFORMABLE DETR: DEFORMABLE TRANSFORMERS FOR END-TO-END OBJECT DETECTION 摘要1 介绍2 相关工作3 重新审视 Transformers 和 DETR4 方法4.1 用于端到端目标检测的可变形transformer4.2 Deformable Detr的其他改进和变型5 实验5.1 和DETR 比较5.2 消融实验5.3 与最先进方法的…...

网络连接评分机制之NetworkFactory

在开机时,各个提供网络连接的对象需要向ConnectivityService注册自己,并把自己所提供的网络的分值告诉ConnectivityService。 为了ConnectivityService便于统一管理,每一个具备提供网络服务的对象都需要创建一个NetworkFactory的子类对象,并利用该对象注册自己,以及提供自…...

极致精细的jmeter+ant+jenkins 搭建接口自动化测试

一、jmeter 相信大家对jmeter并不陌生哈&#xff0c;如果没有安装和配置环境的小伙伴&#xff0c;可以直接找到我哈&#xff0c;我发给你。 二、ant 安装ant 第一步&#xff1a;下载ant http://ant.apache.org/ 第二步&#xff1a;配置ant window中设置ant环境变量&…...

Unity物体查找方式

参考资料 cUnity中使用GameObject.Find、Transform.Find查找GameObject_思月行云的博客-CSDN博客 GameObject.Find 通过名字或路径查找游戏对象。 GameObject.Find("GameObject"); GameObject.Find("GameObject/ChildGameObject); 使用规范: 1.无法查找隐藏…...

【Spring容器的启动流程】

Spring容器的启动流程主要分为以下几个步骤&#xff1a; 加载配置文件&#xff1a;Spring容器会从指定的配置文件中读取配置信息&#xff0c;包括bean的定义、依赖关系、AOP切面等。 创建容器&#xff1a;Spring容器启动后会创建一个容器实例&#xff0c;容器负责管理bean的生…...

做网站的怎么跑业务/产品推广步骤

1.简单说 page指当前页面。在一个jsp页面里有效 2.request 指从http请求到服务器处理结束&#xff0c;返回响应的整个过程。在这个过程中使用forward方式跳转多个jsp。在这些页面里你都可以使用这个变量。 3.Session 有效范围当前会话&#xff0c;从浏览器打开到浏览器关闭这个…...

做一年的网站能赚多少钱/网站软件推荐

前端开发师职业生涯入坑指南 原创&#xff1a; 21CTO 21CTO 昨天21CTO社区导读&#xff1a;前端开发人员的职业生涯将走向何方&#xff1f;或许你有点卡顿或者有点小沮丧&#xff1f;那么这篇文章可能适合你。 几个星期前&#xff0c;我的一位朋友告诉了我&#xff0c;他刚开始…...

网站建设技术及服务承诺/2021年网络热点舆论

为高效工作&#xff0c;运用powershell winrar 、unrar等 批量压缩、解压缩rar文件 首先在电脑上找到winrar,或者unrar所在地&#xff0c;我的win7 x64下 &#xff1a; winrar 在 C:\Program Files (x86)\WinRAR\WinRAR.exeunrar 在 c:/Program Files (x86)/winrar/unrar.exe z…...

哪些b2b网站做游戏机比较好/seo专业培训seo专业培训

介绍PL/SQL之前&#xff0c;先介绍一个图像化工具&#xff1a;Oracle SQL Developer 在oracle的开发过程中, 我们难免会使用第三方开发的软件来辅助我们书写SQL, pl/sql是一个不错的sql书写工具。 下载链接&#xff1a;http://www.oracle.com/technetwork/developer-tools/sql-…...

顺德做营销网站公司/广东优化疫情防控措施

1x2 MIMO和2x2 MIMO 代表的意思&#xff1f; 1、1x2MIMO就是一个输入in&#xff0c;两个输出out&#xff1b; 2、2x2MIMO就是两个输入in&#xff0c;两个输出out。 MIMO(Multiple-Input Multiple-Output)技术指在发射端和接收端分别使用多个发射天线和接收天线&#xff0c;使信…...

百度开户/推广优化

1.增加配置 mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #开启sql日志2.修改日志级别为debug...