1.查找jdk路径

[root@xxx ~]# which java
/data/soft/jdk1.8.0_221/bin/java

2.进入jdk的bin目录下添加指定安全策略文件,注意jdk路径要改成自己对应的路径

[root@xxx ~]# cd /data/soft/jdk1.8.0_221/bin
[root@xxx bin]# vim jstatd.all.policy grant codebase "file:/data/soft/jdk1.8.0_221/lib/tools.jar" {
permission java.security.AllPermission;
};

3.jstatd.all.policy文件创建完成后,我们先在前台执行启动命令,并打开日志,确认配置无误。第一次启动推荐这样做,后面确认配置无误后,需要切换为后台启动,并且不打印日志信息。

# 前台启动并打印日志
[root@xxx bin]# ./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=47.142.158.25 -J-Djava.rmi.server.logCalls=true
# 后台启动并且不打印日志
[root@xxx bin]# ./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=47.142.158.25 &

-J-Djava.security.policy 安全策略文件的路径

-J-Djava.rmi.server.hostname 启动时的本机地址,因为我们要远程访问,所以这里要填机器的公网IP。
如果没有此参数就会以/etc/hosts里的地址进行启动,那里的ip映射一般不会是公网IP,所以也就不能远程访问了,当然你直接修改/etc/hosts文件中的ip地址也行,但这样有可能会影响到其他的应用。

-J-Djava.rmi.server.logCalls 启动时是否开启日志,默认为false。第一次启动的时候最好打开,以确定能够正常访问。后面真正使用的时候,就不要使用此参数了。

另外,启动的默认端口是1099,如果需要修改启动端口,则加上-p参数,例如:

[root@xxx bin]# ./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=47.142.158.25 -p 10099 -J-Djava.rmi.server.logCalls=true

4.检查端口开放,jstatd启动后不只使用了1099这个端口,还会启动一个随机端口,所以实际上需要开放两个端口。

[root@xxx bin]# netstat -antup|grep jstatd
tcp 0 0 0.0.0.0:1099 0.0.0.0:* LISTEN 18490/./jstatd
tcp 0 0 0.0.0.0:34476 0.0.0.0:* LISTEN 18490/./jstatd

我们看到,jstatd启动后使用了1099和34476端口,所以这两个端口都需要开放。

端口开放有两个地方需要检查,一是机器本身的防火墙端口开放,二是云服务器(如果有)的安全组策略。

5.查看jstatd是否启动成功

[root@xxx bin]# ./jps -l
6318 org.apache.catalina.startup.Bootstrap
25135 sun.tools.jps.Jps

这里就能看到jstatd能够监控的java进程。

6.启动本地jvisualvm进行远程连接,到本地机器的jdk目录下找到jvisualvm.exe,并进行远程连接。

在“远程”上右键鼠标,然后“添加远程主机”。

在“主机名”里填上你要监控的远程主机公网IP地址,“显示名称”起个自己好记的名字就好。填好了就点击“确定”。

此时在远程主机下就会列出所有的java进程,我们双击需要监控的进程,切换到“Visual GC”标签页,就能实时查看远程进程的GC过程了。

ps:第一次配置的话,需要将jvisualvm重启一下,这样远程主机才连接的上。之后再增加远程主机就不需要再重启了。

pps:如果是第一次使用jvisualvm,那还需要安装Visual GC插件。这个网上有很多教程了,搜一下就ok。

7.连接到远程主机后,有可能显示“不受此JVM支持”,出现这种情况是因为启动应用程序的用户和启动jstatd的用户不一致导致的,所以只要切换到应用程序用户,然后重启jstatd即可。

本地jvisualvm通过jstatd远程监控GC的更多相关文章

  1. jvisualvm 连接 jstatd 远程监控 jvm 或 Visual GC提示"不受此JVM支持“

    Visual GC提示"不受此JVM支持",可以使用此方法解决. 一.添加配置文件 jstatd.all.policy [root@localhost /]# cd /usr/lo ...

  2. jvisual中添加jstatd远程监控

    visualVM远程监控: jvisual中需要增加插件安装. 在执行Java 应用程序的服务器上先生成一个jstatd.all.policy grant codebase "file:${ ...

  3. VisualVM使用Jstatd和JMX远程监控配置(转载)

    一.Jstatd远程监控服务器配置 jstat可以实时显示本地或远程JVM进程中类装载.内存.垃圾收集.JIT编译等数据.如果要显示远程JVM信息,需要远程主机开启RMI支持,详情如下: 1. 在JA ...

  4. Jstatd方式远程监控Linux下 JVM运行情况

    前言 最近一个项目部署在服务器上运行时出现了问题,经过排查发现是java内存溢出的问题,所以为了实时监控服务器java内存的情况,需要远程查看服务器上JVM内存的一些情况.另外服务器系统是CentOS ...

  5. jvisualvm远程监控Tomcat

    网上已经有很多这方面的资料,但有些很杂乱,这里做了整理总结. 一.Java VisualVM 概述 对于使用命令行远程监控jvm 太麻烦 . 在jdk1.6 中 Oracle 提供了一个新的可视化的. ...

  6. JVisualVM远程监控

    本文主要转自:http://blog.iamzsx.me/show.html?id=394002 http://www.wl566.com/wz/64022.html 1. 通过JMX方式监控远程li ...

  7. Java虚拟机二:使用jvisualvm工具远程监控tomcat内存

    jdk中自带了很多工具可以用于性能分析,位于jdk的bin目录下,jvisualvm工具可以以图形化的方式更加直观的监控本地以及远程的java进程的内存占用,线程状态等信息. 一.配置tomcat 在 ...

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

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

  9. 使用Xshell+Xmanager远程监控jvisualvm

    使用jvisualvm的remote方式监控服务器端jvisualvm时,不是很方便,因此通过local方式,应该是正路. 一.服务器端(Linux,最小安装模式,没有图形界面) 1.安装xauth ...

随机推荐

  1. [GXYCTF2019]Ping Ping Ping(ping命令执行绕过Waf)

    记一道ping注入的题.过滤了很多字符. 分析 简单的测了一下,很容易就拿到了flag.php和index.php. 但是存在waf无法直接查看.直接?ip=127.0.0.1|cat flag.ph ...

  2. 字节跳动Android实习面试难吗,应该如何应对?

    字节跳动的面试难不难其实很难去非常准确的定义,但是能肯定的一点是,字节跳动的面试题都很有水平,真正考察了该岗位在以后工作中需要的能力. 大学学的Java后面又自学Android方向,跟着老师在实验室做 ...

  3. 管理员权限的窗口,收不到WM_COPYDATA

    windows用户界面特权隔离 一个运行在较低特权等级的应用程序的行为就受到了诸多限制,它不可以: 验证由较高特权等级进程创建的窗口句柄 通过调用SendMessage和PostMessage向由较高 ...

  4. (转)Python爬虫--通用框架

    转自https://blog.csdn.net/m0_37903789/article/details/74935906 前言: 相信不少写过Python爬虫的小伙伴,都应该有和笔者一样的经历吧只要确 ...

  5. 【笔记】Ada Boosting和Gradient Boosting

    Ada Boosting和Gradient Boosting Ada Boosting 除了先前的集成学习的思路以外,还有一种集成学习的思路boosting,这种思路,也是集成多个模型,但是和bagg ...

  6. zzcms2020代码审计笔记

    在CNVD中看到zzcms后台sql注入漏洞: 漏洞细节未被公开,影响版本zzcms2020,本地搭建一套相同版本找一下漏洞触发点. 打开目录,后台ba***.php文件共有三个: 先看下bad.ph ...

  7. 谈谈ARM运行C程序的内部机制

    文章目录 一.代码 二.知识储备 1.ARM汇编指令 2.寄存器知识 三.代码解析 1.指令分析 第一条指令: 第二条指令: 第三条指令: 第四条指令: 第五.六条指令: 第七条指令: 第八.九.十条 ...

  8. linux ftp ubuntu18.04 实测有效 完整方法 vsftpd

    https://linuxize.com/post/how-to-setup-ftp-server-with-vsftpd-on-ubuntu-18-04/ 除了此链接完整有效,其他网友 大都残缺不全 ...

  9. Python数学建模系列(一):规划问题之线性规划

    @ 目录 前言 线性规划 样例1:求解下列线性规划问题 scipy库求解 样例2:求解下列线性规划问题 pulp库求解 样例3.运输问题 说明 结语 前言 Hello!小伙伴! 非常感谢您阅读海轰的文 ...

  10. Centos7上安装rabbitmq和使用

    github rpm地址: https://github.com/rabbitmq/erlang-rpm 要安装rabbitmq先安装它的语言 创建erlang repo /etc/yum.repos ...