ava远程服务器,使用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是否已经启动

c8ee80bc0169f2520c85cdd71ee5294d.png

然后,使用visualvm建立连接

visualvm可以从 官网 下载,

解压后,双击/bin/visualvm.exe即可。

选择添加远程服务器:

94c3c39d3ef6640817cc0723cfd232cd.png

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

764d797953465237088a8c8676fe7dab.png

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

87b7004684f95d2661bf2c3a7a2fa165.png

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

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

458fdfb1c4a0cd5edabf3cb3d40e86a4.png

如图所示,pid=3175表示tomcat的进程号是3175

使用ps -ef | grep tomcat命令,

e0d3d3caee0a358212b8e7e03e633631.png

如上图所示,能看到进程号也是3175,不过如果服务器上运行了多个tomcat实例,则需要进一步辨别。

原文:https://www.cnblogs.com/SanjiApollo/p/13283973.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值