• 使用visualVM 1.3.8(visualvm_138-ml.zip) 监控远程Tomcat运行情况


    服务端CentOS6.4 x64安装的是jdk1.7 下载visualVM1.3.8-ml 也就是多语言版本,包含中文,界面用起来方便。官方下载地址比较慢,百度上搜索的都是csdn,51cto等必须登录才能下载的地址,我把我下载的visualvm_138-ml.zip 传上来,我也是在美帝的服务器上下载后,又从美帝的服务器上拖到本地的,比官方地址快多了。

    visualVM1.3.8-ml下载地址(失效请告诉我):http://pan.baidu.com/s/1i59AiHJ

    下载后,在远程服务器进行操作:

    0x00环境检查(此部分转载自<我实在是比较懒>:http://josh-persistence.iteye.com/blog/2233459 有部分修改):

    a、在服务器上配置jstatd的securitypolicy文件 

       jstatd是一个监控 JVM 从创建到销毁过程中资源占用情况并提供远程监控接口的 RMI ( Remote Method Invocation ,远程方法调用)服务器程序,它是一个 Daemon 程序,要保证远程监控软件连接到本地的话需要 jstatd 始终保持运行。  jstatd运行需要通过 -J-Djava.security.policy=*** 指定安全策略,因此我们需要在服务器上建立一个指定安全策略的文件jstatd.all.policy ,文件内容如下(备注:我是放在了自定义的目录下): 

     

    grant codebase "file:${java.home}/../lib/tools.jar" {
        permission java.security.AllPermission;
    };

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

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

    c. 运行 jstatd 守护程序

    由于 jstatd 需要保持一直运行,所以建议使用 screen 命令执行 jstatd 程序,命令如下:
    nohup  jstatd -J-Djava.security.policy=jstatd.all.policy   &>/home/dz/jstatd.log &

     运行完毕查一下进程在不在:

    ps -ef | grep jstatd

    返回:

    root 11679 1736 0 14:07 pts/1 00:00:12 jstatd -J-Djava.security.policy=jstatd.all.policy
    root 12310 1736 0 14:32 pts/1 00:00:00 grep jstatd

    说明已经成功的以守护进程(daemon)方式运行。

    d.打开windows上的visualvm

    添加远程服务器,输入IP地址即可(可能需要打开防火墙的端口)。

    0x02 修改tomcat配置

    a.修改catalina.sh

    在osspecific前加上jvm参数(注意,port是每个应用程序均不同):

    JAVA_OPTS="-Xms8192m -Xmx8192m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:-UseGCOverheadLimit -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

    0x03 查看jmx

    默认VisualVM打开的Tomcat监控信息是没有CPU的使用情况的,需要在服务器上右键,添加JMX,然后输入上面配置的每个Tomcat的端口号即可。

    Enjoy~~~~

  • 相关阅读:
    [其他]JAVA与C#的Socket通信
    Ext 向Ext.form.ComboBox()中添加列表的分类
    Extjs tree 过滤查询功能
    Extjs TreePanel API详解
    JVM虚拟机21: 1.8中废弃永久代(PermGen)迎来元空间(Metaspace)
    JVM虚拟机20:内存区域详解(Eden Space、Survivor Space、Old Gen、Code Cache和Perm Gen)
    Java虚拟机19:再谈四种引用状态
    Java虚拟机18:Java对象大小、对象内存布局及锁状态变化
    Java虚拟机17:互斥同步、锁优化及synchronized和volatile
    Java虚拟机16:Java内存模型
  • 原文地址:https://www.cnblogs.com/sixiweb/p/5660081.html
Copyright © 2020-2023  润新知