
jdk自带监控程序jvisualvm的使用
打开本地JDK安装目录,找到 在工具中选择“远程”选项,输入目标主机的IP地址。 点击工具栏的“添加远程”按钮。 输入目标主机的IP地址并点击“确定”。 在“添加JMX连接”界面中输入相关凭据(如用户名和密码)。 连接池问题:检查连接池的活动连接数和空闲连接数,必要时进行调优。 SQL优化:分析高频查询SQL,优化笛卡尔积问题,建立索引。 内存问题:通过查看JVM线程状态( JVM线程状态:使用 内存使用情况:使用 垃圾回收分析:通过
发布日期:2021-05-16 22:57:20
浏览次数:26
分类:精选文章
本文共 2056 字,大约阅读时间需要 6 分钟。
监控小程序与生产环境配置指南
一、监控小程序的配置
在实际应用中,监控小程序是一种实用的工具,可以帮助开发人员及时发现和处理应用程序的问题。以下是监控小程序的主要配置方法:
1. 运行环境配置
监控小程序通常需要在Tomcat等应用服务器上进行配置。具体步骤如下:
打开Tomcat服务器的bin
目录下的catalina.sh
文件。
在JAVA_OPTS
环境变量中添加以下参数:
-Xms256m
:初始新生代内存分配大小-Xmx512m
:最大新生代内存分配大小-Xss256m
:新生代线程栈的大小-XX:PermSize=512m
:永久代内存分配大小-XX:MaxPermSize=1024m
:永久代内存的最大值-Djava.rmi.server.hostname=136.64.45.24
:指定主机名称-Dcom.sun.management.jmxremote.port=9315
:JMX远程监控的端口号-Dcom.sun.management.jmxremote.ssl=false
:禁用SSL-Dcom.sun.management.jmxremote.authenticate=false
:禁用认证
注意:上述红字内容需要根据实际主机情况进行配置。
2. 本地JDK工具的配置
在本地环境中使用JDK工具进行监控和调优:
jvisualvm.exe
文件并双击启动。3. 远程连接的建立
在JVisualVM中进行远程监控的具体步骤如下:
4. 监控小程序的功能
监控小程序提供了丰富的功能,主要包括:
1. 运行状况监控
- 概述:显示当前Tomcat服务器的整体运行状况。
- 线程监控:实时动态显示进程的使用状况。
- 堆栈监控:查看堆栈信息,分析内存问题。
2. 故障处理
当ITSM系统出现僵死问题时,可以通过JVisualVM工具实时监控进程状态:
jstack
)和内存使用情况(jmap
)定位内存泄漏或溢出问题。二、故障解决方案
1. 连接池配置优化
通过分析连接池日志,发现连接池的活动连接数设置过低,导致在高并发情况下连接池被占满。建议根据具体系统负载进行连接池调优。
2. SQL优化
通过DBA团队对高频查询SQL进行了优化,解决了笛卡尔积问题,并对关键字段建立了索引。此外,还对timeouttime
字段进行了优化处理。
3. 内存问题分析
当系统出现内存溢出或泄漏问题时,可以使用以下工具进行分析:
jstack
命令获取当前VM的线程状态,查看是否存在死锁问题。jmap
命令生成堆内存文本文件,分析对象创建情况。jstat
命令查看垃圾回收的性能指标,找出GC时间过长的原因。三、JVM监控工具
在实际应用中,JVM提供了多种监控工具,可以帮助开发人员定位性能问题:
1. jstack(线程状态查看)
- 命令格式:
jstack <pid>
- 功能:获取VM中的线程状态,分析是否存在死锁或无响应问题。
2. jinfo(JVM参数管理)
- 命令格式:
jinfo -flag <参数名> <pid>
- 功能:查看并修改JVM运行时参数,如PermSize、MaxPermSize等。
3. jps(本地进程查看)
- 命令格式:
jps
- 功能:显示本地JVM进程列表,包括进程ID和运行状态。
4. jstat(内存监控)
- 命令格式:
jstat -gcutil <pid> 1000 100
- 功能:监控垃圾回收的性能指标,分析GC时间和频率。
5. jmap(内存分析)
- 命令格式:
jmap -dump:format=b,file=heap.bin <pid>
- 功能:生成堆内存文本文件,便于分析对象创建情况。
6. jconsole(图形化监控)
- 命令格式:
jconsole
- 功能:提供图表化的监控界面,可实时显示VM的内存、线程、垃圾回收等状态。
四、JVM内存结构
在使用JConsole时,需要了解JVM内存结构:
- Eden Space (新生代):用于分配新对象。
- Survivor Space (存活区):存放经过一次GC未被回收的对象。
- Tenured Generation (老年代):存储长期存活的对象。
- Permanent Generation (永久代):存储类信息和静态数据。
- Code Cache (代码缓存区):用于存储本地代码和JNI库。
通过以上工具和方法,可以有效监控和调优JVM性能,解决应用程序的性能问题和故障。
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年04月24日 01时26分01秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
CentOS 7之Postfix部署系列 (一) CentOS安装
2023-01-26
flask框架面向移动端的虚拟物品订购平台毕设源码+论文
2023-01-26
flask框架飞机订票管理系统(毕设源码+论文)
2023-01-26
flask框架餐饮管理系统毕设源码+论文
2023-01-26
flask框架高性能教学资源平台设计与实现(毕设源码+论文)
2023-01-26
flask框架高校助学及勤工俭学管理系统(毕设源码+论文)
2023-01-26
flask框架高校图书管理系统设计与实现(毕设源码+论文)
2023-01-26
flask框架高校招生预报管理系统(毕设源码+论文)
2023-01-26
flask框架高校教师个人数字档案(毕设源码+论文)
2023-01-26
flask框架高校毕业生选题系统(毕设源码+论文)
2023-01-26
flask框架高校竞赛信息管理系统(毕设源码+论文)
2023-01-26
flask框架魔方教学网站毕设源码+论文
2023-01-26
Flask解决跨域访问问题(Access to XMLHttpRequest at ‘http://127.0.0.1:500been blocked by CORS policy: No ‘Acc)
2023-01-26
Flatterer: 快速JSON转换工具使用指南
2023-01-26
Flex / PHP Security Basics - Part One
2023-01-26
FLEX 4 :选择本地文件编辑
2023-01-26
Flex 与 spring mvc 整合 BlazeDB
2023-01-26
flex 动态创建组件之容器自适应大小
2023-01-26
java 记事本程序_Java记事本程序Notebook
2023-01-27