Java VisualVM远程监控JVM
VisualVM是一个以监控、显示本地或者远程服务器JVM工作情况,进行性能调优的工具。借助VisualVM,我们可以实现对JVM内存各个子池、CPU、垃圾收集器等方面进行监控,从而发现程序代码中潜在的泄露点和配置问题。
远程监控Linux JVM有两种连接方式:
CentOS6.5安装:yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
Ubuntu12.04安装:sudo apt-get install java-7-openjdk
方式1:通过Jstatd启动RMI服务
1.开启远程监控访问,将下面注释去掉,Ubuntu和CentOS JAVA安装路径不同,其他配置基本一样。
Ubuntu:
# vi /etc/java-7-openjdk/management/jmxremote.password monitorRole QED controlRole R&D
CentOS:
# cd /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.31-1.b13.el6_6.x86_64/jre/lib/management/ # cp jmxremote.password.template jmxremote.password # chmod 644 jmxremote.password # vi jmxremote.password monitorRole QED controlRole R&D
2.jstatd以守护进程启动
# jstatd -J-Djava.rmi.server.hostname=192.168.1.156 & # Could not create remote object access denied ("java.util.PropertyPermission" "java.rmi.server.ignoreSubClasses" "write") java.security.AccessControlException: access denied ("java.util.PropertyPermission" "java.rmi.server.ignoreSubClasses" "write")at java.security.AccessControlContext.checkPermission(AccessControlContext.java:372)at java.security.AccessController.checkPermission(AccessController.java:559)at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)at java.lang.System.setProperty(System.java:783)at sun.tools.jstatd.Jstatd.main(Jstatd.java:139)
出现错误,说没有权限,于是百度一下,找到解决办法,就可以正常启动了,如下:
# cd /tmp # vi jstatd.all.policy grant codebase "file:${java.home}/../lib/tools.jar" { permission java.security.AllPermission; }; # jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.1.156 &
打开JVisualVM工具(默认端口1099)-->添加远程主机-->双机主机IP,即可监控
CPU图形没有显示,不受此JVM支持,目前还没找到原因,有知道的博友,还请告知下,谢谢!
方式2:JMX方式监控应用程序,我们以Tomcat为例(常用)
# cd /root/apache-tomcat-8.0.17/bin # vi catalina.sh #找到JAVA_OPTS,在下面添加,添加的位置并没要要求 #JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`" JAVA_OPTS="$JAVA_OPTS-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.1.156" # ./startup.sh # netstat -antp |grep 9999 #查看端口是否监听
打开JVisualVM工具-->添加远程主机-->在远程主机添加JMX连接-->补全端口,确认即可
Java VisualVM远程监控JVM相关推荐
- linux远程visualvm,visualVM远程监控JVM详解
对于完全没用使用过visualVM的初学者 环境:Windows PC上使用visualVM监控远端JVM @@@@jstatd方式连接@@@@ 1.Windows安装jdk,$JAVA_HOME/b ...
- java visualvm远程监控_深入理解JVM虚拟机12:JVM性能管理神器VisualVM介绍与实战
本文转自互联网,侵删 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutori ...
- VisualVm远程监控JVM(jstatd)
一.添加远程主机 VisualVm在jdk中,目录:Java\jdk1.8.0_102\bin,找到jvisualvm.exe. 端口默认为1099无需更改,若启动statd时指定了端口号,则填写自定 ...
- java visualvm远程监控_如何监控和诊断堆外内存使用
如何监控和诊断堆外内存使用 可以使用综合性的图形化工具,如 JConsole.VisualVM ,这些工具比较直观,直接连接到 Java 进程,图形化界面. 可以使用命令工具进行查询,如 jstat ...
- 使用visualvm远程监控LINUX服务器JVM
使用visualvm远程监控LINUX服务器JVM 一.JMX方式: 1. 首先要修改JDK中JMX服务的配置文件,以获得相应的权限: 进入$JAVA_HOME所在的根目录的/jre/lib/mana ...
- 使用VisualVM、JMC远程监控JVM
2019独角兽企业重金招聘Python工程师标准>>> 简介 VisualVM is a visual tool integrating commandline JDK tools ...
- jprofiler远程监控JVM( spring boot项目)
服务器的服务出现莫名其妙的假死问题,没有出现报错或者异常信息.需要通过工具来远程监控项目 大概步骤如下 安装版本号一致的jprofiler 如果使用docker 容器运行项目的需要进入docker 容 ...
- linux jmx 端口,JMX远程监控JVM
远程监控JVM状态需要在JVM启动的时候需要加上一段代码开启这个功能.(以下全部以Ubuntu-14-04-server.jdk1.8.tomcat7.0环境为基础) 配置的时候分两种情况:1.无需配 ...
- 基于Java的远程监控系统
基于Java的远程监控系统 功能点: 1.监控桌面 2.文件上传,下载 3.鼠标.键盘等功能 4.命令行控制 1.桌面 2.文件上传下载 3.鼠标.键盘等功能 略 4.命令行控制 输入命令行 cont ...
最新文章
- 迷宫搜索问题最短路_[源码和文档分享]基于C语言实现的勇闯迷宫游戏
- 解决某东对ip限制若兰(nolanjdc)无法获取短信验问题
- excel公式中更正错误 #N/A
- 饿了么口碑活跃用户增长近美团3倍,2020年行业竞争局势将扭转?
- SpringBoot集成Eureka导致返回结果由json变为xml解决方案
- 如何直观地解释 back propagation 算法?
- MySQL集群搭建——主备模式
- Spring Boot和Hibernate:打印查询和变量
- Codeforce Flea CodeForces - 32C 规律|思维
- Java的数据类型及其封装器类
- sencha touch 彩色图标按钮(button+ico)
- android 设置drawable大小,在Android中调整Drawable大小
- 集训被虐第一天7.31
- Dell Inspiron 14 3437装win7系统没有网卡驱动解决办法
- 全面了解三极管——三极管用作开关管1
- 单层感知器python_深度学习之(神经网络)单层感知器(python)(一)
- 编码格式检测(中文乱码问题)
- Js Switch语句
- Error: The project seems to require yarn but it‘s not installed
- 高通开发系列 - Unpacking Tools拆包工具的制作