zoukankan      html  css  js  c++  java
  • 使用visualvm观察远程服务器某个JVM运行数据

    visualvm正如其名,它能让我们以可视化的方式观察JVM的运行信息,包括启动参数、堆内存、加载的类等。
    visualvm既可以观察本地的JVM,也可以观察远程服务器上的JVM。

    以观察远程服务器上的tomcat为例。

    首先,在服务端开启jstatd

    想要远程监控JVM需要jstatd来简化连接和数据获取操作。
    启动jstatd需要注意,首先是启动jstatd的用户要有权限监控tomcat的进程,比如root用户,或者启动tomcat的用户。
    然后,jstatd相当于监视另一个JVM的运行状态,会带来风险,默认会报出AccessControlException异常,可以使用如下方式规避,
    新建文件jstatd.all.policy,内容如下:

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

    使用如下为命令启动:
    jstatd -J-Djava.security.policy=jstatd.all.policy -p 1099,其中1099用来指定jstatd监听的端口号
    使用ss -nlpt | grep 1099验证jstatd是否已经启动

    然后,使用visualvm建立连接

    visualvm可以从 官网 下载,
    解压后,双击/bin/visualvm.exe即可。
    选择添加远程服务器:

    填入正确的远程主机名和端口号:

    最后,连接成功后可以看到如下界面

    PS,visualvm可以看到远程服务器上的所有JVM,如果想要确定其中某个,可以通过pid来选择,这里提供两种获取pid的方式:

    1. 使用ss -nltp | grep 8080,其中8080是tomcat监听的端口号,可依据先前设置更改此项。

      如图所示,pid=3175表示tomcat的进程号是3175
    2. 使用ps -ef | grep tomcat命令,

      如上图所示,能看到进程号也是3175,不过如果服务器上运行了多个tomcat实例,则需要进一步辨别。
    -------------------------------------
    吾生也有涯,而知也无涯。
  • 相关阅读:
    php date() 函数
    ajax接收遍历处理json格式数据
    textarea 滚动条属性设置
    $.each()和$(selector).each()
    PhpStorm快捷方式
    asp.net错误记录
    php checkbox 从数据库读取和写入
    php表单中如何获取单选按钮与复选按钮的值(示例)
    php一些单选、复选框的默认选择方法(示例)
    常用正则表达式:手机、电话、邮箱、身份证、IP地址、网址、日期等
  • 原文地址:https://www.cnblogs.com/SanjiApollo/p/13283973.html
Copyright © 2011-2022 走看看