性能监控和工具使用

简介: 性能监控和工具使用

1、jvm 内存模型


2c2e492fd83d4ec6990aa6a807760b2b.png

程序计数器 Program Counter Register:


 记录的是正在执行的虚拟机字节码指令的地址,


 此内存区域是唯一一个在JAVA虚拟机规范中没有规定任何OutOfMemoryError的区 域


 虚拟机:VM Stack


 描述的是 JAVA 方法执行的内存模型,每个方法在执行的时候都会创建一个栈帧, 用于存储局部变量表,操作数栈,动态链接,方法接口等信息


 局部变量表存储了编译期可知的各种基本数据类型、对象引用


 线程请求的栈深度不够会报 StackOverflowError 异常


 栈动态扩展的容量不够会报 OutOfMemoryError 异常


 虚拟机栈是线程隔离的,即每个线程都有自己独立的虚拟机栈


 本地方法:Native Stack


 本地方法栈类似于虚拟机栈,只不过本地方法栈使用的是本地方法


 堆:Heap


 几乎所有的对象实例都在堆上分配内存


image.png

2、堆

所有的对象实例以及数组都要在堆上分配。堆是垃圾收集器管理的主要区域,也被称为“GC堆”;也是我们优化最多考虑的地方。

堆可以细分为:


 新生代


 Eden 空间


 From Survivor 空间


 To Survivor 空间


 老年代


 永久代/元空间


 Java8 以前永久代,受 jvm 管理,java8 以后元空间,直接使用物理内存。因此, 默认情况下,元空间的大小仅受本地内存限制。


3e69dd12e32c424789b033970d8f0788.png

09302f27e9bd4030b8f32ac23d3844fd.png


5fbd11d3c2f6473b8a70f9f0c806f47f.png

3、jconsole 与 jvisualvm

Jdk 的两个小工具 jconsole、jvisualvm(升级版的 jconsole);通过命令行启动,可监控本地和 远程应用。远程应用需要配置

1、jvisualvm 能干什么

监控内存泄露,跟踪垃圾回收,执行时内存、cpu 分析,线程分析...


dfe898ae8c6549d689e922e110a09b00.png

运行:正在运行的

休眠:sleep

等待:wait

驻留:线程池里面的空闲线程

监视:阻塞的线程,正在等待锁

 

2、安装插件方便查看 gc

 Cmd 启动 jvisualvm

 工具->插件


abd9420c063b4b9997b95c1f8fe3f984.png

如果 503 错误解决:

 打开网址 https://visualvm.github.io/pluginscenters.html

 cmd 查看自己的 jdk 版本,找到对应的

eb9ee687713e45dbaee87cb3f9264772.png


复制下面查询出来的链接。并重新设置上即可


9dc5ee4e642d4b54b923627715093f2c.png


相关文章
|
6月前
|
SQL 运维 监控
关系型数据库性能监控工具
【5月更文挑战第21天】
118 2
|
3月前
|
监控 Java 开发者
揭秘Struts 2性能监控:选对工具与方法,让你的应用跑得更快,赢在起跑线上!
【8月更文挑战第31天】在企业级应用开发中,性能监控对系统的稳定运行至关重要。针对流行的Java EE框架Struts 2,本文探讨了性能监控的工具与方法,包括商用的JProfiler、免费的VisualVM以及Struts 2自带的性能监控插件。通过示例代码展示了如何在实际项目中实施这些监控手段,帮助开发者发现和解决性能瓶颈,确保应用在高并发、高负载环境下稳定运行。选择合适的监控工具需综合考虑项目需求、成本、易用性和可扩展性等因素。
44 0
|
3月前
|
Java 开发者 前端开发
Struts 2、Spring MVC、Play Framework 上演巅峰之战,Web 开发的未来何去何从?
【8月更文挑战第31天】在Web应用开发中,Struts 2框架因强大功能和灵活配置备受青睐,但开发者常遇配置错误、类型转换失败、标签属性设置不当及异常处理等问题。本文通过实例解析常见难题与解决方案,如配置文件中遗漏`result`元素致页面跳转失败、日期格式不匹配需自定义转换器、`<s:checkbox>`标签缺少`label`属性致显示不全及Action中未捕获异常影响用户体验等,助您有效应对挑战。
89 0
|
3月前
|
SQL 监控 关系型数据库
SQL性能监控与调优工具的神奇之处:如何用最佳实践选择最适合你的那一个,让你的数据库飞起来?
【8月更文挑战第31天】在现代软件开发中,数据库性能监控与调优对应用稳定性至关重要。本文对比了数据库内置工具、第三方工具及云服务工具等几种常用SQL性能监控与调优工具,并通过示例代码展示了如何利用MySQL的EXPLAIN功能分析查询性能。选择最适合的工具需综合考虑功能需求、数据库类型及成本预算等因素。遵循了解工具功能、试用工具及定期维护工具等最佳实践,可帮助开发者更高效地管理和优化数据库性能,迎接未来软件开发中的挑战与机遇。
54 0
|
4月前
|
运维 监控 Java
(十)JVM成神路之线上故障排查、性能监控工具分析及各线上问题排错实战
经过前述九章的JVM知识学习后,咱们对于JVM的整体知识体系已经有了全面的认知。但前面的章节中,更多的是停留在理论上进行阐述,而本章节中则更多的会分析JVM的实战操作。
108 1
|
3月前
|
存储 监控 Ubuntu
完全交互式!易于使用的 Linux 性能监控工具
完全交互式!易于使用的 Linux 性能监控工具
|
4月前
|
Prometheus 监控 数据可视化
性能测试:主流性能监控工具介绍
Linux系统中,`vmstat`和`top`提供基本监控;Nmon是实时性能分析工具,轻量且功能丰富;Collectd+InfluxDB+Grafana组合用于系统数据收集、存储和可视化;Prometheus+Grafana则提供灵活的监控和定制化仪表板。这些工具帮助企业监控系统性能,及时发现和解决问题。
|
监控 Oracle 数据可视化
深度解析JVM性能监控工具:推荐与详细用法
深度解析JVM性能监控工具:推荐与详细用法
943 0
|
6月前
|
监控 Java
Java项目jar性能监控工具CPU内存等
Java项目jar性能监控工具CPU内存等
187 0
|
运维 监控 Java
28-虚拟机性能监控&故障处理工具
经过前面对于虚拟机内存分配与回收技术各方面的介绍, 相信大家已经建立了一个比较系统、 完整的理论基础。 理论总是作为指导实践的工具, 把这些知识应用到实际工作中才是我们的最终目的。 接下来的内容, 我们将从实践的角度去认识虚拟机内存管理的世界。
120 0