visualvm工具远程对linux服务器上的JVM进行监控

8 篇文章 0 订阅
1 篇文章 0 订阅

VisualVM是什么?

VisualVM是一种集成了多个JDK命令行工具的可视化工具,‌它提供在Java虚拟机(JVM)上运行的Java应用程序的详细信息。‌VisualVM的图形用户界面使得用户可以方便、‌快捷地查看多个Java应用程序的相关信息,‌包括生成和分析海量数据、‌跟踪内存泄漏、‌监控垃圾回收器、‌执行内存和CPU分析,‌同时支持在MBeans上进行浏览和操作。‌此外,‌VisualVM还支持通过命令行启动和操作,‌提供了多种命令选项,‌如通过进程ID、‌JMX URL、‌文件、‌分析器ID、‌MBean名称、‌插件仓库URL等打开或操作Java进程和分析结果。‌VisualVM是官方的简单可视化的JVM监控工具,‌旨在为开发者提供强大的分析能力,‌帮助监控和管理Java应用程序的性能和健康状况

一、在window上开启visualvm

在windows系统下java安装目录下可以找到:C:\Program Files\Java\jdk1.8.0_112\bin

若jdk是高版本>1.8,需要从网上下载VisualVM,

visualvm下载地址:VisualVM: Home

本人使用的2.1.9版本

打开visualvm工具,右击远程,添加远程主机

这时,右击“192.168.1.241”,会看到,有两种远程连接方式,一个是JMX,一个是jstatd,我们选择jstatd

二、确定linux系统正确安装了ssh,在linux远程服务器上执行命令:

#必须使用root账号登录才可以
sudo ps -e | grep ssh  

正确安装的话,会如下所示

三、在远程服务器上配置安全访问文件

1、新建 jstatd.all.policy(名称可以自拟,统一命名增加文件可读性)文件,置于JAVA_HOME/bin/文件夹下,

vim jstatd.all.policy

注:当远程linux服务器上有多个jdk时,需要确定哪一个才是压测系统Java进程使用到的jdk环境,这时可以使用“ps -ef | grep java”来确定JAVA_HOME,如下,pid = 17268的进程为Java进程,/Data/software/jdk1.8.0_65/为正确的JAVA_HOME;

或者可以使用 whereis java 命令查看java的安装目录

2、 jstatd.all.policy文件的内容如下

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

esc退出编辑后,:wq强制保存并退出编辑文件

3、保存,设置权限

[root@VM-16-4-centos bin]# chmod 777 jstatd.all.policy

设置成功入下图:

4、在监控的远程服务端启动jstatd,命名如下:

jstatd -J-Djava.security.policy=jstatd.all.policy &

启动后可以使用以下命令检查是否启动完成;

ps -aux | grep jstatd   查看jstatd进程服务
netstat -antup|grep jstatd  查看启动的端口

正确执行后,会回显一个后台进程pid,如下:

这时,观察visualvm工具右边栏菜单,可以看到远程连接的服务端已经自动连接上jstatd,这就意味着,可以在本地通过远程jstatd来监控远程服务器上的jvm信息了。

点击其中一个进程com.sunsoft.zyebiz.rabbitmq.servicerun.EbRabbitmqServicer

就可以进入到对应的监控台

四、实时监控GC的插件visualgc

下载VisualVMGC插件(必须找对应的版本)

下载地址: VisualVM: Home

下载后的插件

插件装载方式,右击VisualVM上的工具栏,选择插件

安装成功后,重启一下visualvm,就可以看到菜单栏上多出一个Visual GC插件

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux系统中,可以通过以下方法对JVM进行监控: 1. jstat命令:jstat是JDK自带的一个命令,用于监控JVM的各种统计信息,如内存、垃圾回收、类加载等。可以使用以下命令查看JVM的统计信息: ``` jstat -<option> <pid> <interval> <count> ``` 其中,`<option>`是统计选项,如gc、class、compiler等;`<pid>`是Java进程的进程ID;`<interval>`是采样间隔时间;`<count>`是采样次数。 2. jps命令:jps命令也是JDK自带的一个命令,用于列出当前系统中正在运行的Java进程的进程ID。可以使用以下命令来查看Java进程的进程ID: ``` jps -l ``` 3. VisualVMVisualVM是一个功能强大的Java监控和性能分析工具,它可以提供实时的JVM监控、线程分析、内存分析、垃圾回收等功能。可以通过下载VisualVM并安装在本地,然后连接到运行中的Java进程进行监控和分析。 4. JConsole:JConsole是JDK自带的一个图形化工具,用于监控和管理JVM。可以通过以下命令启动JConsole: ``` jconsole ``` 然后选择要监控的Java进程进行连接。 5. 远程调试:可以通过在JVM启动参数中添加远程调试参数,如`-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=<port>`来启用远程调试功能。然后使用远程调试工具,如Eclipse、IntelliJ IDEA等,连接到Java进程进行实时监控和调试。 这些方法提供了多种途径来对JVM进行监控和分析,可以根据实际需求选择适合的方法进行使用。监控JVM的统计信息和性能指标可以帮助我们了解应用程序的运行状态,及时发现和解决潜在的性能问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值