JConsole&VisualVM监控总结
简介
JConsole(以下写作jconsole),VisualVM(以下写作jvisualvm )
都是比较好的JVM调优工具,且都为JDK自带,可在命令行直接启动。
监控示例
Server端(需要监控的主机)配置
设置临时JAVA参数
export JAVA_OPTS="\
-Dcom.sun.management.jmxremote.port=<port> \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=<server-ip>"
1
2
3
4
5
注意:-Djava.rmi.server.hostname参数也可不添加,但要确保hostname -i得到的是本机的真实ip,而不是127.0.0.1。
启动相应的JAVA程序
java-app start
1
也可以直接将JAVA配置附加到java程序启动命令
的后面,即java-app start -Dcom.sun.management.jmxremote.port=<port> -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=<server-ip>。
Client端(监控主机)配置
在Client端启动jconsole或jvisualvm,并添加连接参数”server-ip:port”即可开始监控,这两个参数值请保持与上面的配置值一致。
适用场景
监控JAVA程序
若使用jconsole,则官方文档见Java SE Monitoring and Management Guide,其余文章见参考1-4。
若使用jvisualvm,则见参考博文5-8。
监控TomCat
若使用jconsole,请见参考文章3,9,10。使用jvisualvm,请见参考博文11。
监控Flume
Flume传输数据时,需要配置合理的Java参数值和数据传输参数值,否则很容易出现错误,见Flume使用笔记 。此时对Flume程序进行监控显得尤为重要。
启动flume程序并开启监控
bin/flume-ng agent -n flumedn -f collect_data_flume.conf \
-Dcom.sun.management.jmxremote.pt=8999 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=datanode5
1
2
3
4
5
使用jconsole或jvisualvm监控(这里使用jconsole)
创建连接
整体查看
在下图中可以看到整个进程进行中,内存等的占用情况。
查看线程
查看MBeans
这块比较重要,通过观察下图中channel的各属性值,为flume的各项数据传输参数设置提供依据。比如若ChannelFillPercentage一直接近100%,则此时应将ChannelCapacity调大一些。
jconsole 用户名和密码设置
JAVA_OPTS="-server -Xms2048m -Xmx2048m -Xss512k
-Djava.rmi.server.hostname=172.20.30.15
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.pwd.file=/usr/local/java/jdk1.7.0_79/jre/lib/management/jmxremote.password
-Dcom.sun.management.jmxremote.access.file=/usr/local/java/jdk1.7.0_79/jre/lib/management/jmxremote.access"
亲测可用命令:
java -Dfile.encoding=UTF-8 \
-Djava.rmi.server.hostname=192.168.1.51 \
-Dcom.sun.management.jmxremote.pwd.file=jmxremote.password \
-Dcom.sun.management.jmxremote.access.file=jmxremote.access \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.port=7200 \
-Xms1024M -Xmx1024M \
-Xbootclasspath/a:deploy -jar deploy/codex-game.jar
jmxremote.password文件:
user user
admin admin
jmxremote.access文件:
user readonly
admin readwrite \
create javax.management.monitor.*,javax.management.timer.* \
unregister
JConsole&VisualVM监控总结的更多相关文章
- visualvm 监控 远程 机器上的 Java 程序
JDK里面本身就带了很多的监控工具,如JConsole等. 我们今天要讲的这款工具visualvm,就是其中的一款.但是这款工具是在JDK1.6.07及以上才有的.它能够对JAVA程序的JVM堆.线程 ...
- 转:visualvm监控远程机器上的Java程序
转自:http://hanwangkun.iteye.com/blog/1195526 JDK里面本身就带了很多的监控工具,如JConsole等.我们今天要讲的这款工具visualvm,就是其中的一款 ...
- VisualVM监控远程主机上的JAVA应用程序
使用VisualVM监控远程主机上JAVA应用程序时,需要开启远程主机上的远程监控访问,或者在远程JAVA应用程序启动时,开启远程监控选项,两种方法,选择其中一种就可以开启远程监控功能,配置完成后就可 ...
- docker tomcat jvm 使用 visualVM监控
1. 建立基础镜像 FROM centos MAINTAINER fengjian <fengjian@senyint.com> ENV TZ "Asia/Shanghai&q ...
- VisualVM监控远程阿里云主机
一.前言 使用VisualVM监控远程主机,主要是要在远程主机上部署JMX服务和jstat服务,jstat服务的部署花了我半天的时间,而且,网上的资基本都是缺胳膊少腿的,没有一篇是一个整体(行得通的) ...
- 在resin配置參数实现JConsole远程监控JVM
在Resin配置參数实现JConsole远程监控JVM 在Resin中配置中配置下列參数,就能够是实现了! <jvm-arg>-Dcom.sun.management.jmxremote& ...
- 使用jdk自带的visualVM监控远程监控was
1.登录was控制台https://172.16.87.221:9043/ibm/console/unsecureLogon.jsp服务器--服务器类型--Java 和进程管理---进程定义---Ja ...
- Jconsole或者VisualVM监控远程主机(阿里云,jdk11或者8)
准备: 1 一个war包或者jar包,这里我用springboot的 2 linux环境,安装tomcat,jdk,我用的jdk11和tomcat9,jdk11和8的拷贝权限文件路径有点不一样,这个需 ...
- Jconsole远程监控tomcat 的JVM内存(linux、windows)
Jconsole是JDK自带的监控工具,在JDK/bin目录下可以找到.它用于连接正在运行的本地或者远程的JVM,对运行在java应用程序的资源消耗和性能进行监控,并画出大量的图表,提供强大的可视化界 ...
随机推荐
- tarjan强连通分量 (模板)
#include<iostream> #include<cstdio> using namespace std; const int MAXN = 10005; struct ...
- android 签名生成和签名验证
keytool -genkey -alias lingni -keyalg RSA -validity -keystore lingni.keystore -alias 是别名 lingni.keys ...
- spring其他配置 (3)
目录 一.自动装配 Autowired 二.bean的作用于singleton,prototype 三.引入外部资源properties文件 四.SpEL表达式 (可以为属性进行动态的赋值) 五.通过 ...
- 10.RabbitMQ Fanout类型交换机
Fanout类型交换机忽略Routing Key,它将消息传递到所有与它绑定的队列上. Producer.java package com.test.fanout; import co ...
- iOS开发UIResponder之NSUndoManager
1.简介 UIResponder有个属性:NSUndoManager @property(nullable, nonatomic,readonly) NSUndoManager *undoManage ...
- 【Latex】一些使用
http://www.mohu.org/info/symbols/symbols.htm GG..研究个公式就搞这么晚了..还不知道那三个报错的是怎么回事.. 意识模糊..睡了睡了. # Latex ...
- mysql实现访问审计
mysql的连接首先都是通过init_connect初始化,然后连接到实例. 我们利用这一点,通过在init_connect的时候记录下用户的thread_id,用户名和用户地址实现db的访问审计功能 ...
- 《数据结构与算法分析——C语言描述》ADT实现(NO.02) : 队列(Queue)
第三个结构——队列(Queue) 队列与上次的栈相反,是一种先进先出(FIFO)的线性表.写入时只暴露尾部,读取时只暴露头部. 本次只实现了数组形式的队列.原因是链表形式的队列极为简单,只需要实现简单 ...
- 神经网络 (1)- Alexnet
文章目录 模型结构 conv1层 conv2层 conv3层 conv4层 conv5层 FC6全链接图: fc7全连接层:和fc6类似. fc8链接层: 模型优化 选择ReLU作为激活函数 多GPU ...
- latex 引用文献 bib
study from : https://jingyan.baidu.com/article/925f8cb8bce1f0c0dce0564f.html 寻找文献 谷歌学术 from: https:/ ...