为什么80%的码农都做不了架构师?>>>   

一.Java VisualVM 概述

对于使用命令行远程监控jvm 太麻烦 。 在jdk1.6 中 Oracle 提供了一个新的可视化的。 JVM 监控工具 Java VisualVM 。jvisualvm.exe 在JDK 的 bin 目录下。

双击启动 Java VisualVM 后可以看到窗口左侧 “应用程序 ”栏中有“ 本地 ”、“远程 ” 、“快照 ”三个项目。

“本地 ”下显示的是在 localhost 运行的 Java 程序的资源占用情况,如果本地有 Java 程序在运行的话启动 Java VisualVM 即可看到相应的程序名,点击程序名打开相应的资源监控菜单,以图形的形式列出程序所占用的 CPU 、 Heap 、 PermGen 、类、线程的 统计信息。

“远程” 项下列出的远程主机上的 Java 程序的资源占用情况,但需要在远程主机上运行 jstatd 守护程序

VisualVM分为 3 类, 本地 它会自动侦测到,并显示出来

双击Local 下的任一节点,看到右边的变化 ,你可以监控 CPU ,内存,类,线程等运行状况,实时监控服务器性能。

右键 VisualVM我们可以看到 Thread Dump, Heap Dump

做 Thread Dump 很快,马上就可以看到结果

Heap Dump要稍花费一些时间(可以看到当前 heap 里对象的数量及占用的比例,做 OOM 很好用)

对其功能不再做描述,可以查阅网上相关质量,我们主要讲的是如何使用 VisualVM 远程监控。

二.使用visualvm 远程监控 JVM

1. 测试环境

Ubuntu Server 10.01

2.  在服务器上安装 jstatd 组件

使用apt-get 命令安装 openjdk 即可 :

Java代码  
  1. sudo apt-get install openjdk-6-jdk

3. 在服务器上配置 jstatd 的 security policy 文件

jstatd是一个监控 JVM 从创建到销毁过程中资源占用情况并提供远程监控接口的 RMI ( Remote Method Invocation ,远程方法调用)服务器程序,它是一个 Daemon 程序,要保证远程监控软件连接到本地的话需要 jstatd 始终保持运行。

jstatd运行需要通过 -J-Djava.security.policy=*** 指定安全策略,因此我们需要在服务器上建立一个指定安全策略的文件jstatd.all.policy ,文件内容如下:

Java代码  
  1. grant codebase "file:${java.home}/../lib/tools.jar" {
  2. permission java.security.AllPermission;
  3. };

4. 修改服务器 hosts 文件中的 IP 地址

要使Java VisualVM 成功连接到远程服务器上,服务器端应该在 /etc/hosts 文件中把本机地址设为本机的 IP 地址。使用 hostname -i 命令查看,如果显示的是 127.0.0.1 或者与本机实际 IP 不一致的话,需要把 /etc/hosts 文件中相应的地址改为本机实际 IP 。

5. 运行 jstatd 守护程序

由于 jstatd 需要保持一直运行,所以建议使用 screen 命令执行 jstatd 程序,命令如下:

Java代码  
  1. screen jstatd -J-Djava.security.policy=jstatd.all.policy

如果需要RMI 日志功能的话,还可以在启动参数中加入 -J-Djava.rmi.server.logCalls=true 。

Java代码  
  1. screen jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.logCalls=true

jstatd开始运行后,使用 CTRL+A+D 断开 screen 界面,回到 shell 界面。如果想切换回 jstatd 运行界面的话,使用 screen -r -d命令即可。

6. 通过Java VisualVM 连接到服务器监控 Java 程序

在Java VisualVM 程序窗口左侧 “ 远程 ” 项目右键选择 “ 添加远程主机 ” ,在弹出的对话框中输入远程主机的 IP 地址,确认提交后即可看到相应的远程主机和在上面运行的 Java 程序,连接成功后应该会显示 Jstatd 及其 PID 。

通过以上方式连接服务器发现一个问题,不能监控CPU 。提示我们建立 JMX ,建立 JMX 提示要求端口号。( JMX:Java Management Extensions ,即 Java 管理扩展 , 是一个为应用程序、设备、系统等植入管理功能的框架。 JMX 可以跨越一系列异构操作系统平台、系统体系结构和 网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用 。而Visual VM是通过 JMX 来和远程 Java 应用联系的 )。

7. T omcat中配置

下面我们为54 服务器的 tomcat 配置 jvm 启动参数。 在 tomcat 的 catalina.sh 中添加如下参数:

Java代码  
  1. JAVA_OPTS='-Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false'

或:

Java代码  
  1. JAVA_OPTS=’-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.1.54  其他配置’

注:1. -Dcom.sun.management.jmxremote.port :这个是配置远程 connection 的端口号的,要确定这个端口没有被占用

2. -Dcom.sun.management.jmxremote.ssl=false 指定了 JMX 是否启用 ssl

3. -Dcom.sun.management.jmxremote.authenticate=false   指定了JMX 是否启用鉴权(需要用户名,密码鉴权)

2,3两个是固定配置,是 JMX 的远程服务权限的

4. -Djava.rmi.server.hostname :这个是配置 server 的 IP 的

连接成功,现在我们可以远程监控服务器性能,可以配合 jmeter 进行了一个长时间的加压,在加压过程中重点关注了系统资源的使用情况。

转载于:https://my.oschina.net/liting/blog/520621

jvisualvm远程监控Tomcat相关推荐

  1. 使用jvisualvm远程监控tomcat(阿里云ECS)

    写在前面:  使用jvisualvm远程监控tomcat(阿里云ECS),连接是报错:service:jmx:rmi:jndi/rmi:IP:端口//  连接到 IP:端口,网上找了很多资料,未能解决 ...

  2. 使用JVisualVM远程监控Tomcat

    用JVisualVM连接远程JVM,监控系统运行性能参数. 作用:JVM和监控的应用程序运行在不同的服务器上,减轻应用程序的负担,特别是HeapDupm的时候,应用常能够续负担很大. 1为 10.87 ...

  3. Jconsole远程监控Tomcat

    使用Jconsole远程监控tomcat情况,开启远程监控是比较简单的,只是开启几个设置选项就行了.我使用的是centos系统安装的默认的tomcat6,那么我只需要修改/etc/tomcat6/to ...

  4. java tomcat监控_java-jvisualvm远程监控tomcat

    一.修改要访问的远程主机(Linux)相关文件,本文档只介绍了java-jvisualvm的JMX方式: 1.打开$CATALINA_HOME/bin/startup.sh, 找到倒数第二行(也就是e ...

  5. 使用JMX透过防火墙远程监控tomcat服务

    为什么80%的码农都做不了架构师?>>>    JDK的bin目录下有jvisualvm或jconsole可以监控本地和远程jvm实例的运行动态(包括cpu,内存等), 对于性能分析 ...

  6. Jconsole远程监控tomcat 的JVM内存(linux、windows)

    Jconsole是JDK自带的监控工具,在JDK/bin目录下可以找到.它用于连接正在运行的本地或者远程的JVM,对运行在java应用程序的资源消耗和性能进行监控,并画出大量的图表,提供强大的可视化界 ...

  7. Jconsole/jvisualvm远程监控weblogic中间件配置

    1.进入linu操作界面,进入到启动服务目录下 2.选择要监控的服务的启动项,进入到编辑状态(注意:要先将该文件进行备份),如下图所示 3.修改USER_AGRS域,添加如下内容,注意修改IP USE ...

  8. 远程监控tomcat运行

    1.jdk安装目录下的bin目录有jvisualvm.exe执行程序 2.安装visualgc插件:工具-->插件 3.出现如下界面,选择visual GC 第二种方式手动下载安装插件: 插件下 ...

  9. 使用JDK自带jvisualvm监控tomcat

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...

最新文章

  1. java 将查询到的值 存下_MyBatis3.x 从入门到精通(六)查询
  2. 辗转相除法求多项式的最大公因式
  3. 关于 Method Swizzing方法
  4. boost锁机制中Semaphores的介绍
  5. OpenStack —— DevStack一键自动化安装
  6. linux定时任务生效_Linux 添加定时任务
  7. 浙江工业大学校赛 XiaoWei的战斗力
  8. 3dmax学习7——车削修改器
  9. 软件实施工程师的发展前景
  10. Android 最最最简单的浏览器代码
  11. Android开发----简单几步教你制作一个简易的音乐播放器
  12. Rayson API 框架分析系列之5: NIO实现原理
  13. css网站变灰色代码
  14. 文本表示(Representation)
  15. 电子警察系统设计(原理+流程+论文)
  16. win10以太网未识别的网络的解决方法
  17. 论文所涉及公司简介是否需要查重?
  18. 罗格数据:生命周期动态模拟技术及其在税收领域应用初探 | 会员专栏
  19. ubuntu安装酷狗音乐
  20. 斗战神服务器正在维护6,斗战神3月16日维护更新内容及修改BUG

热门文章

  1. 系统服务描述表指针查找
  2. Android监听安装卸载
  3. 阿里云配置负载均衡实例
  4. Android Studio项目转Eclipse项目
  5. Binary Tree Level Order Traversal II 解题思路
  6. VS2012+7600配置驱动环境
  7. Windows SDK 非模态对话框的消息处理
  8. GIS中的坐标系定义与转换【转】
  9. 产品团队的批判性思维:如何通过合理的决策带来合理的结果?
  10. Docker镜像与容器命令