
JConsole(以下写作jconsole),VisualVM(以下写作jvisualvm )
都是比较好的JVM调优工具,且都为JDK自带,可在命令行直接启动。
设置临时JA参数
export JA_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>"
注意:-Djava.rmi.server.hostname参数也可不添加,但要确保hostname -i得到的是本机的真实ip,而不是127.0.0.1。
启动相应的JA程序
java-app start
也可以直接将JA配置附加到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端启动jconsole或jvisualvm,并添加连接参数”server-ip:port”即可开始监控,这两个参数值请保持与上面的配置值一致。
若使用jconsole,则官方文档见Java SE Monitoring and Management Guide,其余文章见参考1-4。
若使用jvisualvm,则见参考博文5-8。
若使用jconsole,请见参考文章3,9,10。使用jvisualvm,请见参考博文11。

Flume传输数据时,需要配置合理的Java参数值和数据传输参数值,否则很容易出现错误,见Flume使用笔记 。jdk15 jconsole 监控不到此时对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
使用jconsole或jvisualvm监控(这里使用jconsole)
创建连接

整体查看
在下图中可以看到整个进程进行中,内存等的占用情况。jdk15 jconsole 监控不到

查看线程

查看MBeans
这块比较重要,通过观察下图中channel的各属性值,为flume的各项数据传输参数设置提供依据。比如若ChannelFillPercentage一直接近100%,则此时应将ChannelCapacity调大一些。


见参考博文12。
见Java监控工具介绍,VisualVm ,JProfiler,Perfino,Yourkit,Perf4J,JProbe,Java微基准测试,基本上常见的Java监控工具都囊括了。
【1】Jconsole监控本地及远程Java进程
【2】JConsole 使用总结
【3】jconsole工具使用
【4】如何利用 JConsole观察分析Java程序的运行,进行排错调优
【5】如何使用JVisualVM进行性能分析
【6】visualvm的安装笔记
【7】使用 VisualVM 进行性能分析及调优
【8】JVM学习总结五(番外)——VisualVM
【9】JConsole监控远程Tomcat服务器
【10】监视和管理控制台 jconsole 的使用
【11】jvisualvmTomcat
【12】Hadoop2.0:Jvisualvm监控MapReduce和spark作业
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-44301-1.html
海洋公约的缔约国当然可以说12海里是入侵
也不可能一直赌赢
你永远是我们的浪漫功夫熊猫