jconsole使用记录
jconsole/JVisualVM连接linux服务器查看JVM使用情况
现需要在本地电脑上查看服务器的tomcat的整体的运行状态,使用jconsole工具.
JMX配置
- 拷贝$JAVA_HOME/jre/lib/management/目录下的 jmxremote.access , jmxremote.password 到tomcat的conf目录下
- 修改access,password文件使用权限为700
- 设置password文件,在文件最后添加用户名密码. eg:jmxuser jmxpwd
- 设置access文件,注释掉原有monitorRole,controlRole. 添加新用户名及权限. eg:jmxuser readwrite
- 修改catalina.sh,添加jmx配置如下:
- 重启tomcat,使用jconsole连接
# ----- Execute The Requested Command -----------------------------------------
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=8.8.8.8 #访问host地址
-Dcom.sun.management.jmxremote.port=10207
-Dcom.sun.management.jmxremote.authenticate=true #是否需要密码
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.access.file=/usr/local/tomcat/apache-tomcat-commensec/conf/jmxremote.access
-Dcom.sun.management.jmxremote.password.file=/usr/local/tomcat/apache-tomcat-commensec/conf/jmxremote.password"
export JAVA_OPTS
注意事项
- 如果不需要配置访问的权限,如内网使用zabbix进行监控,可以不用配置access和password文件. 配置 authenticate=false 即可.
- 在JAVA_OPTS的配置中,网上有资料是没有-Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=hostIP的.我在配置的时候发现如果没有此参数,那么我本地jconsole无法连接到服务器
- JVisualVM插件中心地址已经改为:https://visualvm.github.io/pluginscenters.html
- visual gc本地可用,远程:不受此jvm支持
这里需要注意,如果要使用Visual GC 需要在服务器上开启jstat.开启步骤- 启动RMI服务
首先,配置java安全访问,在服务器jdk路径(/java_home/bin)下新建文件名称: jstatd.all.policy 内容如下:grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
- 通过如下的命令启动RMI服务:
- ./jstatd -J-Djava.security.policy=jstatd.all.policy
- ./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=8.8.8.8
- 然后在Visual VM中选择tomcat即可看到数据
- 启动RMI服务
jconsole使用记录的更多相关文章
- 【经验记录】Jconsole Jvisualvm 监控Tomcat
环境:centos 6 1.首先检查hostname是否正确,输入以下命令 hostname -i 如果输出机器ip,则表示正确,如果输出 hostname: Unknown host 查看/etc/ ...
- JConsole远程连接配置
JConsole远程连接还是有一点坑的.这里记录一下配置过程,好记性不如烂笔头. 1.在远程机的tomcat的catalina.sh中加入配置: JAVA_OPTS="$JAVA_OPTS ...
- 事故记录-过多进程致使CPU卡死
早上到公司,发现邮箱内有报警信息显示CPU和IO使用都已超标.报警内容如下:主机: test-server-192.168.1.18 时间: 2015.11.15 15:25:17状态: PROBLE ...
- Jconsole: JAVA 监视和管理控制台简介
Jconsole: JAVA 监视和管理控制台简介 JDK中除了提供大量的命令行之外,还提供两个功能强大的可视化工具:JConsole和VisualVM. 之前对java的调试一直停留在 右键-> ...
- JDK自带工具jps,jstat,jmap,jconsole使用
jps 与ps命令类似: ps -ef|grep java 用来显示本地的java进程,查看本地执行着几个java应用,并显示进程号. [root@SE43 ~]# jps //仅仅显示进程号 238 ...
- (转载)Java自带的GUI性能监控工具Jconsole以及JisualVM简介
原文链接:http://blog.csdn.net/chendc201/article/details/22905503 1 Jconsole 1.1 简介以及连接 JConsole是一个基于JMX的 ...
- JDK命令行(jps、jstat、jinfo、jmap、jhat、jstack、jstatd、hprof)与JConsole
很多资料在介绍JDK命令行工具时并不是在Java8环境下,因此还在使用过时的永久区系列的参数,给一些读者造成困难. Java8使用Metaspace(元空间)代替永久区,对于64位平台,为了压缩JVM ...
- JDK记录-JVM原理与调优(转载)
转载自<https://www.cnblogs.com/andy-zhou/p/5327288.html> 一.什么是JVM JVM是Java Virtual Machine(Java虚拟 ...
- 深入理解java虚拟机读后总结(个人总结记录)
1.jvm布局: jdk1.6版本JVM布局分为:heap(堆),method(方法区),stack(虚拟机栈),native stack(本地方法栈),程序计数器共五大区域. 其中方法区包含运行 ...
随机推荐
- DP———3.最长上升子序列的和
Nowadays, a kind of chess game called “Super Jumping! Jumping! Jumping!” is very popular in HDU. May ...
- Lesson 7: C#多线程
C#多线程 1.适用于: 通过网络进行通信 执行占用时间的操作 区分具有不同优先级的任务 使用户界面在执行后台任务时能快速响应用户的交互 2.Thread类常用属性及方法 属性: IsAlive:显示 ...
- [从hzwer神犇那翻到的模拟赛题] 合唱队形
[问题描述] 学校要进行合唱比赛了,于是班主任小刘准备给大家排个队形. 他首先尝试排成m1行,发现最后多出来a1个同学:接着他尝试排成m2行,发现最后多出来a2个同学,……,他尝试了n种排队方案,但每 ...
- zero(NOIP模拟赛 Round 4)
题目描述 假设x=N!,那么x的末尾有多少个零呢? 输入 一行,一个整数N. 输出 输出只有一个整数,表示x末尾零的个数. 这道题目,我们看一看数据范围, 10^1000肯定是高精啦! 然后我们再想一 ...
- aiohttp的学习
https://hubertroy.gitbooks.io/aiohttp-chinese-documentation/content/aiohttp%E6%96%87%E6%A1%A3/Client ...
- Java工厂模式浅析理解
由于本人缺乏工作经验,本篇文章作为随笔,只是对工厂模式有一个简单的认识 工厂模式分为以下三种: 1:简单工厂(Simple Factory).2:工厂方法(Factory Method).3:抽象工厂 ...
- Ubuntu16.04搭建LAMP开发环境
Ubuntu16.04搭建LAMP开发环境 虚拟机上安装好Ubuntu16.04后,是一台空白的Ubuntu.我的目的是搭建LAMP环境,顺便搭一个Python Django环境. 基本设置 1.配置 ...
- 简述web工程师的职责与学习
最近两年web突然很火,也有很多人涌入这一行,但这行实际上是进来的人很多,出去的人也很多. 在我眼里,Web前端开发工程师的职责有:1.Web前端表现层及与前后端交互的架构设计和开发2.配合后台开发人 ...
- 使用百度地图JavaScript实现驾车/公交/步行导航功能
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- PHP中利用PHPMailer使用QQ邮箱实现邮件发送
/** * 下订单发送邮件 * @to 收件人 @title 标题 @content 内容 */ function sendMail($to,$title,$content){ //引入PHPMail ...