Java--JDK自带JVM性能调优工具jconsole远程监控tomcat进程_java监控jvm命令端口12345

export PATH= J A V A _ H O M E / b i n : JAVA\_HOME/bin: JAVA_HOME/bin:PATH
export CLASSPATH=.: J A V A _ H O M E / l i b / d t . j a r : JAVA\_HOME/lib/dt.jar: JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jar


**刷新配置生效:`source /etc/profile`**  
 **再次查看JDK:`java -version`**


### 3.2 配置Tomcat


#### 3.2.1 安装Tomcat


**已配置Tomcat的可以跳过该步骤**  
 **没有安装Tomcat的,可以先到官方下载,再进行解压安装**  
 <https://archive.apache.org/dist/tomcat/tomcat-8/v8.0.24/bin/>  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/41bf6f60962f4a808841ea1c263d1be3.png)


**我这里Tomcat解压并安装的示例路径如下:**



mkdir -p /usr/tomcat/
cd /usr/tomcat/
tar -xvf apache-tomcat-8.0.24.tar.gz
cd /usr/tomcat/apache-tomcat-8.0.24


**启动Tomcat**



cd /usr/tomcat/apache-tomcat-8.0.24/bin
./startup.sh


![在这里插入图片描述](https://img-blog.csdnimg.cn/7700bbedd8d64253bf31ce0174e747bd.png)  
 **查看Tomcat启动日志**



tail -f /usr/tomcat/apache-tomcat-8.0.24/logs/catalina.out


**查看Tomcat运行状态**



ps -ef|grep tomcat
ps -ef|grep java


**如果Tomcat正常启动,会出现如下相关进程**  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/d5817a3c50f5453183effb3c84f9a8ed.png)


#### 3.2.2 配置Tomcat远程


##### 3.2.2.1 配置Tomcat远程(无密码)


**无密码的很简单,直接修改Tomcat的bin目录下的`catalina.sh`,在关键信息`Execute The Requested Command`上面添加如下内容:**



CATALINA_OPTS=“ C A T A L I N A _ O P T S − D j a v a . r m i . s e r v e r . h o s t n a m e = 192.168. x x . x − D c o m . s u n . m a n a g e m e n t . j m x r e m o t e " C A T A L I N A _ O P T S = " CATALINA\_OPTS -Djava.rmi.server.hostname=192.168.xx.x -Dcom.sun.management.jmxremote" CATALINA\_OPTS=" CATALINA_OPTSDjava.rmi.server.hostname=192.168.xx.xDcom.sun.management.jmxremote"CATALINA_OPTS="CATALINA_OPTS -Dcom.sun.management.jmxremote.port=12345”
CATALINA_OPTS=“ C A T A L I N A _ O P T S − D c o m . s u n . m a n a g e m e n t . j m x r e m o t e . r m i . p o r t = 12345 " C A T A L I N A _ O P T S = " CATALINA\_OPTS -Dcom.sun.management.jmxremote.rmi.port=12345" CATALINA\_OPTS=" CATALINA_OPTSDcom.sun.management.jmxremote.rmi.port=12345"CATALINA_OPTS="CATALINA_OPTS -Dcom.sun.management.jmxremote.authenticate=false”
CATALINA_OPTS=“$CATALINA_OPTS -Dcom.sun.management.jmxremote.ssl=false”


**注意修改`***hostname`为自己服务器的`公网IP`,还有`***jmxremote.rmi.port`这行不能少,少了会无法远程连接,网上很多这里都没配置。**  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/d646203e596642b8b0ca276e1f7b6c5f.png)  
 **网上有些地方发现catalina.sh中配置CATALINA\_OPTS 不生效,于是想通过`JAVA_OPTS`,如修改上面catalina.sh中为JAVA\_OPTS:**



JAVA_OPTS=“ J A V A _ O P T S − D j a v a . r m i . s e r v e r . h o s t n a m e = 192.168. x x . x − D c o m . s u n . m a n a g e m e n t . j m x r e m o t e " J A V A _ O P T S = " JAVA\_OPTS -Djava.rmi.server.hostname=192.168.xx.x -Dcom.sun.management.jmxremote" JAVA\_OPTS=" JAVA_OPTSDjava.rmi.server.hostname=192.168.xx.xDcom.sun.management.jmxremote"JAVA_OPTS="JAVA_OPTS -Dcom.sun.management.jmxremote.port=12345”
JAVA_OPTS=“ J A V A _ O P T S − D c o m . s u n . m a n a g e m e n t . j m x r e m o t e . r m i . p o r t = 12345 " J A V A _ O P T S = " JAVA\_OPTS -Dcom.sun.management.jmxremote.rmi.port=12345" JAVA\_OPTS=" JAVA_OPTSDcom.sun.management.jmxremote.rmi.port=12345"JAVA_OPTS="JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false”
JAVA_OPTS=“$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false”


**能正常启动tomcat,但是这种会导致在执行`shutdown.sh`停止tomcat时报错,原因是`JAVA_OPTS`是任何命令的运行时选项,因此执行`shutdown.sh`命令时会报错,提示端口(如`12345`)被占用,而`CATALINA_OPTS`则只会在"开始"时的选项,不会影响停止操作。**  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/755648ba9f394e6a9b87bfb7d353a36c.png)


**重启Tomcat**



cd /usr/tomcat/apache-tomcat-8.0.24/bin
./shutdown.sh
./startup.sh
tail -f /usr/tomcat/apache-tomcat-8.0.24/logs/catalina.out


**查看Tomcat进程**  
 `ps -ef|grep tomcat`  
 **看到Tomcat进程有远程hostname和port相关的信息,说明正常配置**  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/673899e53a9b4c27bdf0616640df6c30.png)  
 **Windows下重新进行远程连接,不用输入密码,直接连接即可**  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/8bf9d88299c84f878a1b764941b2142b.png)  
 **正常连接,可查看时间范围内的数据,可以对JVM的堆区内存进行监控,还可以监控线程数、类以及CPU使用率**  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/14efc97cb59b4d359ff509ffdd76d598.png)


##### 3.2.2.2 配置Tomcat远程(有密码)


**第一步:同样,修改catalina.sh内容**



CATALINA_OPTS=“ C A T A L I N A _ O P T S − D j a v a . r m i . s e r v e r . h o s t n a m e = 192.168. x x . x − D c o m . s u n . m a n a g e m e n t . j m x r e m o t e " C A T A L I N A _ O P T S = " CATALINA\_OPTS -Djava.rmi.server.hostname=192.168.xx.x -Dcom.sun.management.jmxremote" CATALINA\_OPTS=" CATALINA_OPTSDjava.rmi.server.hostname=192.168.xx.xDcom.sun.management.jmxremote"CATALINA_OPTS="CATALINA_OPTS -Dcom.sun.management.jmxremote.port=12345”
CATALINA_OPTS=“ C A T A L I N A _ O P T S − D c o m . s u n . m a n a g e m e n t . j m x r e m o t e . r m i . p o r t = 12345 " C A T A L I N A _ O P T S = " CATALINA\_OPTS -Dcom.sun.management.jmxremote.rmi.port=12345" CATALINA\_OPTS=" CATALINA_OPTSDcom.sun.management.jmxremote.rmi.port=12345"CATALINA_OPTS="CATALINA_OPTS -Dcom.sun.management.jmxremote.authenticate=true”
CATALINA_OPTS=“$CATALINA_OPTS -Dcom.sun.management.jmxremote.ssl=false”


**与无密码的区别在于,这里`***authenticate`的值配置为`true`,表示需要开启密码进行鉴权**


**第二步:配置远程用户密码**



cd /usr/java/jdk1.8.0_202/jre/lib/management/
cp jmxremote.password.template jmxremote.password
chmod 600 jmxremote.password


修改`jmxremote.password`,快捷键`Shift + G`定位到最后,添加一个远程连接`用户 用户密码`,如:



tomcat abc@123456


![在这里插入图片描述](https://img-blog.csdnimg.cn/8b37d076b6a944dd811a67787748d705.png)  
 也可以放开现有的`monitorRole/controlRole`两个用户的注解,用来做远程连接也可以  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2cf5e689f66046988ac1f9ace1278e21.png)


**第三步:配置远程用户权限**  
 同样,当前目录下,修改`jmxremote.access`,快捷键`Shift + G`定位到最后,给新加的tomcat用户读写的权限:



tomcat readwrite


**保存:wq并退出**  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/c903192bef884a5381076df1fc1996a7.png)  
 **重启Tomcat**



cd /usr/tomcat/apache-tomcat-8.0.24/bin
./shutdown.sh
./startup.sh


**查看Tomcat**



tail -f /usr/tomcat/apache-tomcat-8.0.24/logs/catalina.out
ps -ef|grep tomcat


**启动无报错,并且查看tomcat进程也有如下看关键信息`***authenticate=true`表明配置正常**  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/e459b06fdbfa45b8b000890a35219214.png)  
 **Windows下重新进行远程连接,输入用户密码进行连接即可**  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/ca4da78bf7044c4d98e0967b32ab5211.png)  
 **正常连接,监听堆区内存、线程数、类以及CPU占用率如下:**  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/64b81044db384dc8a5cf0311db5547cd.png)


## 附录:如开启防火墙则需先放开端口


**本文使用的示例远程端口是`12345`,如果服务器已开启防火墙,需要配置防火墙添加该端口,才可以正常远程连接**


**查看防火墙的状态**  
 `systemctl status firewalld.service`


![在这里插入图片描述](https://img-blog.csdnimg.cn/f243b15a336b4046b425f24a61809c1b.png)




## 一线互联网大厂Java核心面试题库

![image](https://img-blog.csdnimg.cn/img_convert/774575ac0f8f1472f8ea74f72de735aa.webp?x-oss-process=image/format,png)

正逢面试跳槽季,给大家整理了大厂问到的一些面试真题,由于文章长度限制,只给大家展示了部分题目,更多Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等已整理上传,感兴趣的朋友可以看看支持一波!

## 一线互联网大厂Java核心面试题库

[外链图片转存中...(img-uDxsrFRd-1714320563040)]

正逢面试跳槽季,给大家整理了大厂问到的一些面试真题,由于文章长度限制,只给大家展示了部分题目,更多Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等已整理上传,感兴趣的朋友可以看看支持一波!

> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/topics/618154847)收录**
  • 13
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值