JVM理论(七)性能监控与调优

news2024/9/28 11:23:41

概述

 性能优化的步骤

  • 性能监控:就是通过以非强行或入侵方式收集或查看应用程序运行状态,包括如下问题

    • GC频繁
    • CPU过载过高
    • OOM
    • 内存泄漏
    • 死锁
    • 程序响应时间较长
  • 性能分析:通常在系统测试环境或者开发环境进行分析
    • 通过查看程序日志以及GC日志,或者运用命令行工具如jstack、jmap、jinfo等
    • 导出dump快照文件,利用内存分析工具分析文件
    • 使用阿里的arthas或者jprofiler、jconsole、jvisualvm等查看jvm状态
  • 性能优化:目的就是改善应用程序的响应时间或者吞吐量
    • 更改程序参数、
    • 源代码
    • 属性配置

注意: 为何要调优?防止出现OOM以及解决OOM和减少FGC出现的次数

JVM命令行监控工具 (适用于无GUI环境下的服务器环境且已安装完整JDK的条件下使用)

  • jps: java process status 表示查看正在运行的java进程
    • -l: 输出应用程序主类的全类名

  • jstat: 查看JVM统计信息,包括虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据
    • -class: classLoader相关信息
    • -gc: 显示与GC相关信息
-gc +Pid(进程id):显示各指标信息
-gcutil +Pid(进程id) +internal(间隔多少毫秒):显示每间隔时间下各指标信息
-gcnew+Pid(进程id):显示新生代区信息
-gcold+Pid(进程id):显示新生代区信息
  • jinfo: 实时查看和修改jvm的配置参数信息
  • jmap: 导出内存映像文件即JVM堆快照dump文件
    • -dump:file=C:/tmp/dump.hprof 4040 --表示将java进程ID(4040)的堆快照文件导出到C:/tmp/dump.hprof(常常结合jps使用)
  • jhat: jdk自带堆分析工具(jdk9以后已删除该命令,官方建议使用visualVM代替)
  • jstack: 打印jvm中线程快照(即每条线程正在执行的方法的堆栈集合),常常用于定位线程出现长时间停顿的原因,如死锁、死循环、请求外部资源导致长时间等待
    • 在thread dump中,重点关注如下几种状态
    • 死锁: Deadlock
    • 等待资源: Waiting on condition
    • 等待获取监视器: Waiting on monitor entry
    • 阻塞: Blocked

 

JVM监控及诊断的GUI工具

visual VM(jdk自带产品)

比jconsole工具强大多了

Jprofiler(商业收费,功能全面)

window下可视化分析工具

Arthas(目前市场上比较流行,可以集成到项目中,在系统运行过程中动态查看内存等相关状态)

注意:

        a.从官网下载arthas后确保本地jdk已安装成功;

        b.系统正常运行后,启动arthas进行诊断监测项目。(选择项目pid进行后续诊断)

阿里的开源产品组件,官网:简介 | arthas

window下可视化分析工具

 

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

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

相关文章

simulink与遗传算法结合求解TSP问题

前言:刚开始入门学习simulink,了解了基本的模块功能后想尝试从自己熟悉的领域入手,自己出题使用simulink搭建模型。选择的是TSP问题的遗传算法,考虑如何用simulink建模思想来实现一个简单TSP问题的遗传算法。 TSP问题描述 一个配…

注解和反射04--类加载

类加载 Java内存分析了解类的加载过程类的加载与ClassLoader的理解什么时候会发生类的初始化 类加载器类加载器的作用 Java内存分析 了解类的加载过程 当程序主动使用某个类是,如果该类害未被加载到内存中,啧系统会通过下面三个步骤来对该类进行初始化 …

数字信号处理中的基本运算——加法运算

1. 一位全加器 2. 二进制加法原理 两个N位二进制补码相加,为防止溢出时导致计算结果错误,可将这两个加数先进行符号位扩展,变为N1位二进制数,然后相加,结果亦取N1位,可保证运算结果正确。 根据多位加法器…

互联网医院申办|线上问诊系统|互联网医院系统功能

随着互联网的快速发展,各行各业都在积极探索如何将互联网与自身服务相结合,实现数字化转型。互联网医院建设分院内与院外建设,院内建设是业务流程的优化过程,是系统改造的过程,是医院精细化运营的一部分,也…

基于Java+SpringBoot+vue前后端分离美容院管理系统设计实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

跑步适合戴什么样的耳机、最好的跑步耳机推荐

每个人对于运动的方式都不尽相同,但大多数热爱运动的朋友都离不开音乐的陪伴。运动和带有节奏感的音乐能够激发我们更多的热情和动力。特别是在夏日的时候,我非常喜欢跑步。在酷热的天气里,如果没有音乐的伴随,跑步会变得单调乏味…

【Vue3】BEM 架构和 Sass 语法

1. BEM 架构 BEM(Block, Element, Modifier)是一种命名约定,用于在编写 CSS 和 HTML 类名时创建可维护和可重用的样式。BEM 是一种常用的 CSS 命名规范,它的目的是减少样式之间的耦合,增加样式的可读性,并…

多目标优化:NSGA(Ⅱ)

多目标优化的基本概念 习多目标优化的过程中&#xff0c;其中涉及相关概念如下&#xff1a; Pareto 支配关系 (Pareto Dominance)&#xff1a;支配&#xff1a;对于多个目标值&#xff0c;随机自变量x1、x2&#xff0c;对于任意一个目标函数都存在f(x1)<f(x2)&#xff0c;则…

Vue 3:玩一下web前端技术(三)

前言 本章内容为VUE工作过程与相关使用讨论。 上一篇文章地址&#xff1a; Vue 3&#xff1a;玩一下web前端技术&#xff08;二&#xff09;_Lion King的博客-CSDN博客 下一篇文章地址&#xff1a; Vue 3&#xff1a;玩一下web前端技术&#xff08;四&#xff09;_Lion Ki…

视频监控综合管理平台EasyCVR向上级联时,上级一直回复401是什么原因?

视频监控管理EasyCVR视频融合平台基于云边端一体化架构&#xff0c;可支持多协议、多类型设备接入&#xff0c;具体包括&#xff1a;NVR、IPC、视频编码器、无人机、车载设备、智能手持终端、移动执法仪等。平台具有强大的数据接入、处理及分发能力&#xff0c;可在复杂的网络环…

SSM 书籍借阅管理系统【纯干货分享,免费领源码04770】

摘 要 随着科学技术的告诉发展&#xff0c;我们已经步入数字化、网络化的时代。图书馆是学校的文献信息中心&#xff0c;是为全校教学和科学研究服务的学术性机构&#xff0c;是学校信息化的重要基地。图书馆的工作是学校和科学研究工作的重要组成部分&#xff0c;是全校师生学…

向量距离度量中的几种计算公式

距离度量 衡量两条向量之间的距离&#xff0c;可以将某一张图片通过特征提取来转换为一个特征向量。衡量两张图片的相似度就可以通过衡量这两张图片对应的两个特征向量之间的距离来判断了。 1.欧式距离 欧式距离可以简单理解为两点之间的直线距离。对于两个n维空间点 a ( x…

实景三维在智慧矿山中的应用

项目背景 智慧矿山是以矿山数字化、信息化为前提和基础&#xff0c;对矿山生产、职业健康与安全、技术支持与后勤保障等进行主动感知、自动分析、快速处理&#xff0c;建设智慧矿山&#xff0c;最终实现安全矿山、无人矿山、高效矿山、清洁矿山的建设。 智慧矿山的可视化管理…

解决新版 Idea 中 SpringBoot 热部署不生效

标题 依赖中添加 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <opt…

组件开发系列--Apache Commons Chain

一、前言 Commons-chain是apache commons中的一个子项目,主要被使用在"责任链"的场景中,struts中action的调用过程,就是使用了"chain"框架做支撑.如果你的项目中,也有基于此种场景的需求,可以考虑使用它. 在责任链模式里&#xff0c;很多对象由每一个对象对…

纯nginx制作文件上传下载服务器

什么是webdav webdav 是一组超文本传输协议的技术集合&#xff0c;有利于用户键协同编辑和管理存储在万维网服务器文档。同时来说就是&#xff0c;webdav可以让用户直接存储&#xff0c;下载&#xff0c;编辑文件&#xff0c;操作文件需要进行用户认证 基于nginx快速搭建webdav…

ORA-00923: FROM keyword not found where expected

举个栗子呗&#xff0c;就是语法错误找不到“FROM”&#xff0c;也是少了逗号 数据库提示不精确 ERROR 1064 - You have an error in your SQL syntax&#xff1b;_spencer_tseng的博客-CSDN博客

倒立摆控制(SMART PLC串级PID控制)

专栏有好几篇倒立摆相关的文章,大家可以自行参考阅读,包括编码器角度测量以及一些模型介绍,这篇博客我们记录、介绍S7-200 SMART PLC进行倒立摆控制采用串级PID的调试过程。 1、倒立摆的串级PID控制 2、设置摆杆PID作用区域 角度作用区域,在其它文章有详细图示,大家可以…

文心一言 VS 讯飞星火 VS chatgpt (67)-- 算法导论6.5 6题

文心一言 VS 讯飞星火 VS chatgpt &#xff08;67&#xff09;-- 算法导论6.5 6题 六、在 HEAP-INCREASE-KEY 的第 5 行的交换操作中&#xff0c;一般需要通过三次赋值来完成。想一想如何利用INSERTION-SORT 内循环部分的思想&#xff0c;只用一次赋值就完成这一交换操作? 文…

获取Bean的两种方法

简单获取Bean的两种方法 简单获取Bean的两种方法那么对于调用Bean对象时需要注意什么&#xff1f; 五大类注解自定义名称三种bean注入 简单获取Bean的两种方法 在之前使用spring时我们都是使用xml语句进行对象注入&#xff0c;而如果对于一个大型项目采用这种方法&#xff0c;…