Jvisualvm监控远程SpringBoot项目的过程详解

目录
  • JMX
    • 1.修改SpringBoot启动参数
    • 2.使用本地jvisualvm监控远程
  • jstatd
    • 1.添加配置
    • 2.使用本地jvisualvm监控远程

注意:VisualVM连接远程服务器有两种方式:JMX和jstatd,两种方式都不能完美支持所有功能,

例如JMX不支持VisualGC,

jstatd不支持CPU监控

实际使用可同时配置上并按需选用。

jvisualvm程序添加远程连接,请关闭本机防火墙。

JMX

1.修改SpringBoot启动参数

正常的springboot启动命令为

nohup java -jar demo.jar &

使用监控后:

nohup java -Djava.rmi.server.hostname=192.168.81.149 \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=1099 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-jar jvm-1.0-SNAPSHOT.jar &
java -Djava.rmi.server.hostname=192.168.81.149 \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=1099 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-jar jvm-1.0-SNAPSHOT.jar

jvm-1.0-SNAPSHOT.jar 是项目的 jar包

192.168.81.149 是项目部署的机器ip

1099是jvisualvm需要连接的远程端口号

authenticate=false 不启用,用户认证

2.使用本地jvisualvm监控远程

打开后又可能啥都没有,空荡荡的,这是因为项目需要有人访问下,随便都行

jstatd

1.添加配置

这种方式需要你手动安装JDK才行, 或者你知道jdk在哪里

在jdk目录下的bin创建

vi jstatd.all.policy

我这边指定了绝对路径,方便排除路径方面的影响

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

启动jstatd后台应用 端口(默认为1099) 使用参数-p可指定其它端口

jstatd -J-Djava.security.policy=jstatd.all.policy \
-J-Djava.rmi.server.hostname=192.168.81.149 \
-J-Djava.rmi.server.logCalls=true  -p 1098

(我是在/usr/local/jdk1.8.0_161/bin路径下运行的下面的命令,该路径下就有jstatd.all.policy文件。如果是在其他地方执行,记得指定绝对或相对路径)

其中,

-J-Djava.security.policy=jstatd.all.policy 指定路径
-J-Djava.rmi.server.logCalls=true  打印日志
-J-Djava.rmi.server.hostname=192.168.81.149  指定主机名,主机名应该和你用hostname -i命令执行出来的结果一致。

启动项目

java  -jar jvm-1.0-SNAPSHOT.jar

2.使用本地jvisualvm监控远程

这个1,098 其实是我们输入的时候,1098自动转换的

到此这篇关于Jvisualvm监控远程SpringBoot项目的文章就介绍到这了,更多相关Jvisualvm监控远程SpringBoot内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java虚拟机使用jvisualvm工具远程监控tomcat内存

    jdk中自带了很多工具可以用于性能分析,位于jdk的bin目录下,jvisualvm工具可以以图形化的方式更加直观的监控本地以及远程的java进程的内存占用,线程状态等信息. 一.配置tomcat 在tomcat的catalina.sh文件开头加上如下配置: JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=fa

  • 使用jvisualvm配合Visual GC插件监控Java程序详细总结

    jvisualvm介绍 VisualVM(All-in-One Java Troubleshooting Tool)是到目前为止随JDK发布的功能最强大的运行监视和故障处理程序,它提供了运行监视.故障处理.性能分析(Profiling)等功能.VisuaIVM有一个很大的优点:不需要被监视的程序基于特殊Agent运 行,因此它对应用程序的实际性能的影响很小,使得它可以直接应用在生产环境中. jdk8的文档中https://docs.oracle.com/javase/8/docs/technot

  • Jvisualvm监控远程SpringBoot项目的过程详解

    目录 JMX 1.修改SpringBoot启动参数 2.使用本地jvisualvm监控远程 jstatd 1.添加配置 2.使用本地jvisualvm监控远程 注意:VisualVM连接远程服务器有两种方式:JMX和jstatd,两种方式都不能完美支持所有功能, 例如JMX不支持VisualGC, jstatd不支持CPU监控, 实际使用可同时配置上并按需选用. jvisualvm程序添加远程连接,请关闭本机防火墙. JMX 1.修改SpringBoot启动参数 正常的springboot启动命

  • IDEA通过Docker插件部署SpringBoot项目的过程详解

    1.配置Docker远程连接端口 找到并编辑服务器上的docker.service文件. vi /usr/lib/systemd/system/docker.service 如下图所示的地方,添加: -H tcp://0.0.0.0:2375 2.重启Docker systemctl daemon-reload service docker restart 3.服务器开放端口 我用的阿里云服务器,在安全组的配置规则,开放端口. 4.测试远程连接是否正常 curl http://localhost

  • springboot jpa分库分表项目实现过程详解

    这篇文章主要介绍了springboot jpa分库分表项目实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 分库分表场景 关系型数据库本身比较容易成为系统瓶颈,单机存储容量.连接数.处理能力都有限.当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库.优化索引,做很多操作时性能仍下降严重.此时就要考虑对其进行切分了,切分的目的就在于减少数据库的负担,缩短查询时间. 分库分表用于应对当前互联网常见的两个场景--大数

  • vue-cli3.0 脚手架搭建项目的过程详解

    1.安装vue-cli 3.0 npm install -g @vue/cli # or yarn global add @vue/cli 安装成功后查看版本:vue -V(大写的V) 2.命令变化 vue create --help 用法:create [options] <app-name> 创建一个由 `vue-cli-service` 提供支持的新项目 选项: -p, --preset <presetName>       忽略提示符并使用已保存的或远程的预设选项   -d

  • springboot整合netty过程详解

    这篇文章主要介绍了springboot整合netty过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 前言 上一篇讲了netty的一个入门的demo:项目上我也把数据处理做好了,就要开始存数据库了:我用的mybatis框架,如果单独使用还是觉得比较麻烦,所以就用了springboot+mybatis+netty:本篇主要讲netty与springboot的整合,以及我在这个过程中遇到的问题,又是怎么去解决的: 正文 我在做springbo

  • SpringBoot使用Log4j过程详解

    这篇文章主要介绍了SpringBoot使用Log4j过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 log4j.logback.Log4j2简介 log4j是apache实现的一个开源日志组件 logback同样是由log4j的作者设计完成的,拥有更好的特性,用来取代log4j的一个日志框架,是slf4j的原生实现 Log4j2是log4j 1.x和logback的改进版,采用了一些新技术(无锁异步.等等),使得日志的吞吐量.性能比lo

  • SpringBoot实现国际化过程详解

    这篇文章主要介绍了SpringBoot实现国际化过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 实现方法:thymeleaf模板引擎加上BootStrap 准备工作: 1.将准备好的Bootstrap模板放在templates下让SpringBoot进行自动配置 SpringBoot自动配置会自动到(idea的shif键连按两下进入全局搜索) 2.Bootstrp的引入(这里是maven以depency的方式引入) <!--引入boot

  • SpringBoot Redis安装过程详解

    这篇文章主要介绍了SpringBoot Redis安装过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Redis 1.安装配置Redis服务,可以官网或GitHub下载安装,这里不做介绍. Ps:安装后可查看环境变量,将Redis配置到环境变量中,非必须. 2.在pom.xml中添加Redis的依赖,如下: Ps:springboot版本不同,填写的依赖存在差异. 3.编写Redis的工具类,代码如下: @Component publi

  • 使用vue cli4.x搭建vue项目的过程详解

    cli-4.x已经发布好久了,斟酌了好久,还是决定将原来的cli-2.x升级到4.x,详细的升级过程可以戳这里 1.创建项目 vue create vuetest 2.选择配置方式 ? Please pick a preset: (Use arrow keys) ☜(使用箭头键) > default (babel, eslint) ☜(使用默认的配置,会安装babel和eslint) Manually select features ☜(手动配置) 这里我选择的是手动配置(使用↑ ↓箭头切换,E

  • 使用 React 和 Threejs 创建一个VR全景项目的过程详解

    最近我在学习使用 React 配合 Three.js 来搭建一个可以浏览720全景图片的项目 实现的是加载一张 2:1 的720全景 分享一下我的创建过程 一.搭建框架并安装需要的插件 npx create-react-app parano // 创建一个 React 项目 npm install -S typescript // 安装 typescript,这个是类型辅助插件,与全景项目关系不大 npm install -S @types/three // 安装 typescript 支持的

随机推荐