Java 程序GC机制及性能稳定性调优分析

本文介绍了Java程序的JVM资源监控,包括使用jvisualVM和远程监控,以及JVM集群监控体系通过grafana和prometheus。深入讨论了GC垃圾回收原理,如分代回收和STW现象。此外,还分析了常见的GC内存问题,如栈溢出和内存溢出,并提供了性能测试中的稳定性调优策略和GC参数调整建议。
摘要由CSDN通过智能技术生成

一、 JVM 资源监控工具

1. jvisualVM工具

VisualVM 提供了一个可视界面,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象;在JDK_HOME/bin目录下,双击jvisualvm.exe文件即可打开运行。打开后默认会监控本地运行的java程序,运行的界面如下:

2. 连接远程服务器,需要在被监控JVM服务器上启动jstatd服务

JVM jstat Daemon:守护进程,一个RMI(Remote Method Invocation)服务器程序,用于监控本地所有JVM从创建开始直到销毁整个过程中的资源使用情况,同时提供接口给监控工具(如这里的VisualVM),让工具能连接到本机所有的JVM。该命令在 jdk的bin目录下

1). 首先要创建安全策略文件

创建一个文件 jstatd-all.policy ,存放到一个目录,比如放到/u01/apps/目录下(名称和存放位置可随意),该文件内容为:

grant codebase "file:${java.home}/../lib/tools.jar" {       permission java.security.AllPermission;};

注意:服务器记得配置JAVA_HOME 环境变量

2). 启动 jstatd server

首先确定你的jvisualvm客户端能够通过这个ip访问到服务器,然后在被监控的服务器 上面,执行如下命令:

jstatd -J-Djava.security.policy=/u01/apps/jstatd-all.policy -J-Djava.rmi.server.hostname=192.168.xxx.xxx (被监控机器的ip地址)

   默认端口 1099

3). 在jvisualvm客户端,添加远程主机

4). 对应的远程主机节点下会自动列出所有运行的JVM ,监控显示如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值