可视化监控和管理工具 jconsole以及tomcat堆内存调整

本文介绍了Java开发工具包(JDK)自带的jconsole工具,用于监控JVM内存、线程和垃圾回收等指标。同时详细说明了如何使用jconsole连接Java进程以及如何在Tomcat中设置堆内存大小。
摘要由CSDN通过智能技术生成
一、jconsole获取 JVM的内存使用情况、线程活动、GC 行为等重要指标的可视化工具
1.概念

        jconsole 是 Java Development Kit (JDK) 自带的一款图形化监控和管理工具。它旨在提供一个简单而强大的界面,用于监视和管理 Java 应用程序在 Java 虚拟机 (JVM) 上的运行情况。

        jconsole 提供了可视化的方式来获取有关 Java 应用程序的各种信息,包括内存使用情况、线程活动、GC 行为等重要指标。它还允许远程连接到运行中的 Java 进程,提供对远程应用程序的监控和管理能力。

2.使用

        启动 JConsole:JConsole 是包含在 JDK 中的一个工具,因此首先要确保已经安装了 JDK。然后,在命令行中输入 jconsole 命令或者双击 jconsole.exe 启动 JConsole 。

  • 连接到 Java 进程:启动 JConsole后,会弹出一个界面,显示所有正在运行的 Java 进程。选择要监控的 Java 进程,并点击 连接 按钮。
  • 监控 JVM:连接成功后,JConsole 提供了多个选项卡,用于监控各种 JVM 资源。常用的选项卡包括:
  • 概览(Overview):显示 JVM 的概览信息,如内存使用情况、线程数、类加载器信息等。
  • 内存(Memory):显示 JVM 的内存使用情况,包括堆内存、非堆内存、内存池等。
  • 线程(Threads):显示 JVM 中的线程活动情况,包括线程数、线程状态、死锁等。
  • 类(Classes):显示 JVM 加载的类信息,包括已加载类的数量、被卸载的类数量等。
  • VM 概要(VM Summary):显示JVM的基本信息,如 JVM 的启动参数、命令行参数等。
  • MBean:显示了所有在 platform. MBeanserver 上注册的 MBeans 的信息。
  • 执行操作:除了监控功能外,JConsole 还可以执行一些管理操作。例如,可以通过 JConsole 执行垃圾回收、线程Dump、线程死锁检测等操作。

        这些操作可以通过点击相应的按钮执行。

2.1 启动jconsole

        在 windows 下我们可以直接找到 JDK 的所在目录,去 /bin 目录下找到 jconsole.exe 双击运行即可,如图2.1。

图2.1

        如果你正确的配置好 Java 环境的话,win + R 打开 命令提示符 窗口,输入 jconsole 命令也是能打开的。

2.2 连接到 Java 进程
        2.2.1 本地连接

        在本地进程中会展示出当前计算机所有正在运行的 Java 程序,只需选中双击进入,再点击 不安全的连接

        即可进入到监听界面

        2.2.2 远程连接

        远程连接要到服务器上,需要再服务器上加入以下启动参数之后,重启项目

# 远程服务器ip,即本机ip,可以查看远程服务器的ip地址
-Djava.rmi.server.hostname=XXX.XXX.XXX.XXX 
# 允许 JMX 远程调用
-Dcom.sun.management.jmxremote
# 自定义 JMX 端口号
-Dcom.sun.management.jmxremote.port=8899
# 是否需要 ssl 安全连接方式
-Dcom.sun.management.jmxremote.ssl=false
# 是否需要密钥
-Dcom.sun.managent.jmxremote.authenticate=false

        注意:这个端口号不能与程序端口一样,需要单独的,不重复的端口号,否则会报端口被占用 的错误,还有就是你服务器的防火墙没关的话还要在防火墙中开发该端口,其次如果你使用的服务器是云服务器的话,还需要在云服务器上开发该端口。

        其次还需要创建 jmxremote.password 文件,用于控制远程连接用户名和密码的。可以在 %JAVA_HOME%/jre/lib/management 目录下查看是否有 jmxremote.password 文件,如果没有的话可以通过该目录下的jmxremote.password.template 文件为原型复制一个。

#使用命令复制
cp jmxremote.password.template jmxremote.password

        然后编辑 jmxremote.password 文件

#使用命令进行编辑
vim jmxremote.password

        修改最下面的两行,把注释 # 去掉

monitorRole 是查看角色(也是登录用户名,在 access 文件中),拥有只读权限,QED 是设置的密码。
controlRole 是控制用户(也是登录用户名,在 access 文件中),拥有读写权限,R&D 是设置的密码。

        最后对该文件赋权即可:

#命令的作用是将文件 jmxremote.password 设置为只有所有者具有读写权限,而组用户和其他用户没有任何权限。
chmod 600 jmxremote.password
二、设置tomcat的java堆内存大小
1.如果tomcat是以bat方式启动的

        打开tomcat所在目录/bin/catalina.bat,略过注释后,在第一行写上:

set JAVA_OPTS=-Xms1024M   -Xmx2048M -XX:MaxPermSize=1024M

        然后保存,关闭tomcat,重新启动即可。

2.如果tomcat是注册成了windows服务,以services方式启动的,则需要修改注册表中的相应键值

        6.0以上的tomcat需要在tomcatw.exe文件中设置参数,比如tomcat_home/bin目录下的tomcat7w.exe,双击改程序文件。

        打开到java标签页

        下方的Initial memory pool就是初始化堆内存大小,Maximun memory pool是最大堆内存大小。

        而要设置Perm Gen池的大小就要在Java Option里面加参数了,在里面加上:

-Dcatalina.base=%tomcat_home%

-Dcatalina.home=%tomcat_home%

-Djava.endorsed.dirs=%tomcat_home%endorsed

-Djava.io.tmpdir=%tomcat_home% emp

-XX:PermSize=512M

-XX:MaxPermSize=2048M

-Xms1024M 

-Xmx2048M

-Duser.timezone=GMT+08

        重起tomcat服务,即可生效。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值