Skip to content

codexvn/jstatd-agent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

项目目的

VisualVM是一个好工具,可以用于查看JVM的运行状态,开发过程中经常用到。

VisualVM需要使用jstatd来连接远程的JVM,jstatd提供了一个-p的参数,可以指定一个端口,但实际上除了这个端口以外,jstatd还会随机开启一个端口,这个端口是不固定的,这样就导致了VisualVM无法连接到容器内的JVM。

本项目的目的就是解决这个问题,使用javaagent的方式来启动jstatd,在启动过程中修改jstatd的源码,使其不再随机开启端口,而是使用指定的端口。

使用方法

  1. jstatd-agent.jar放到容器内
  2. 启动jsatd,假设使用的端口是1099和1100,一个通过-p参数指定,一个通过remoteHostPort指定
jstatd -J-Djava.security.policy=jstatd.all.policy -J-javaagent:jstatd-agent.jar=remoteHostPort=1100 -J-Djava.rmi.server.hostname=x.x.x.x -p 1099
x.x.x.x指服务器IP
  1. 使用VisualVM连接到jstatd

注意

  1. remoteHostPort是必填参数
  2. jstatd.all.policy文件是jstatd的安全策略文件,需要加上
  3. remoteHostPort指定得端口在映射的时候需要保证src和dest端口一致,但是-p指定的端口不需要一致. 如上述脚本中的-p 1099remoteHostPort=1100,在映射的时候需要保证1100:1100,但是1099不需要

参考

https://github.com/anthony-o/ejstatd

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages