JVM调优工具-VisualVM 远程连接服务器

通过windows系统中的VisualVM工具,监控Linux系统的测试环境或uat环境或生成环境,来监控JVM内存。

VisualVm提供在Java虚拟机(Java Virutal Machine,JVM)上运行的java应用程序。

只有按照了jdk,就可以在bin目录下,找到启动程序。

以下是具体步骤:

一、再windows系统中,启动VisualVM

  1. 在windows系统中java安装目录中jdk/bin/目录下的jvisualvm.exe启动程序。双击启动。

  2. 下载插件

    依次点击:工具-> 插件

二、再Linux系统中,配置远程授权

要监控Linux服务器,需要在该服务器上运行jstatd守护进程。

2.1 配置

jstatd命令也是在jdk/bin/目录下。

执行这个命令之前,需要进行安全策略授权。在jdk/bin目录下,创建名称为jstatd.all.policy的文件,内容如下:

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

配置完后,在jdk/bin目录下执行jstatd命令,命令为:

# jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=ip (hostname 为你的 IP)
# & 是后台运行
./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=172.16.120.12 &

如果启动报错,错误信息如下:

/usr/local/jdk1.8.0_321/bin/jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=172.16.120.12
Could not create remote object
access denied ("java.util.PropertyPermission" "java.rmi.server.ignoreSubClasses" "write")
java.security.AccessControlException: access denied ("java.util.PropertyPermission" "java.rmi.server.ignoreSubClasses" "write")at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)at java.security.AccessController.checkPermission(AccessController.java:886)at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)at java.lang.System.setProperty(System.java:792)at sun.tools.jstatd.Jstatd.main(Jstatd.java:139)
​

解决办法:修改/usr/local/jdk1.8.0_321/jre/lib/security/java.policy文件,并在最后增加如下内容:

//添加下面内容
permission java.security.AllPermission;

添加完,整体文件如下:

// Standard extensions get all permissions by default
​
grant codeBase "file:${{java.ext.dirs}}/*" {permission java.security.AllPermission;
};
​
// default permissions granted to all domains
​
grant {// Allows any thread to stop itself using the java.lang.Thread.stop()// method that takes no argument.// Note that this permission is granted by default only to remain// backwards compatible.// It is strongly recommended that you either remove this permission// from this policy file or further restrict it to code sources// that you specify, because Thread.stop() is potentially unsafe.// See the API specification of java.lang.Thread.stop() for more// information.permission java.lang.RuntimePermission "stopThread";
​// allows anyone to listen on dynamic portspermission java.net.SocketPermission "localhost:0", "listen";
​// "standard" properies that can be read by anyone
​permission java.util.PropertyPermission "java.version", "read";permission java.util.PropertyPermission "java.vendor", "read";permission java.util.PropertyPermission "java.vendor.url", "read";permission java.util.PropertyPermission "java.class.version", "read";permission java.util.PropertyPermission "os.name", "read";permission java.util.PropertyPermission "os.version", "read";permission java.util.PropertyPermission "os.arch", "read";permission java.util.PropertyPermission "file.separator", "read";permission java.util.PropertyPermission "path.separator", "read";permission java.util.PropertyPermission "line.separator", "read";
​permission java.util.PropertyPermission "java.specification.version", "read";permission java.util.PropertyPermission "java.specification.vendor", "read";permission java.util.PropertyPermission "java.specification.name", "read";
​permission java.util.PropertyPermission "java.vm.specification.version", "read";permission java.util.PropertyPermission "java.vm.specification.vendor", "read";permission java.util.PropertyPermission "java.vm.specification.name", "read";permission java.util.PropertyPermission "java.vm.version", "read";permission java.util.PropertyPermission "java.vm.vendor", "read";permission java.util.PropertyPermission "java.vm.name", "read";//添加下面内容permission java.security.AllPermission;
};

再次运行jstatd命令就不会报错了,命令如下:

./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=172.16.120.12 &

三、远程连接

在windows系统中java安装目录中jdk/bin/目录下的jvisualvm.exe启动程序。双击启动。

点击确认,就连接成功了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/337293.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux --proc文件夹学习笔记

内容在飞书文档: Docshttps://r0dhfl3ujy9.feishu.cn/docx/Xe2wd23MToSmGrxUm9kcVHrPn7g?fromfrom_copylink

Java后端返回的MySQL日期数据在前端格式错误的解决方法,区分jackson和fastjson

写在前面 在写web项目的时候经常会遇到后端返回的MySQL日期数据(date)类型在前端显示不正确的情况,有的时候会出现一串数字的时间戳,有的时候显示为日期晚了一天。 这是因Json给前端返回数据的时候格式问题造成的 解决方法 其实总结起来就是一句话在…

典型的无人机打击技术

无人机打击技术主要指的是用于中和、摧毁或干扰无人机(UAV)的各种技术手段。 这些技术随着无人机的广泛使用而迅速发展,特别是在军事和安全领域。下面是一些主要的无人机打击技术及其原理: 射频干扰(RF Jamming&#x…

统计学-R语言-1

文章目录 统计学介绍基本类型数据和变量数据抽样总结 统计学介绍 统计学(statistics)是“数据的科学” 1.是用以收集数据、分析数据和由数据得出结论的一组概念、原则和方法。 2.统计学进行推断的基础是数据(data)。数据不仅仅限于数字,也可能是图表、视频、音频或…

D42D43D44|买卖股票的最佳时机

121.买卖股票的最佳时机 初始思路&#xff1a; 暴力解法&#xff0c;两个for循环。 class Solution {public int maxProfit(int[] prices) {int res Integer.MIN_VALUE;for(int i 0;i<prices.length;i){for(int j i1;j<prices.length;j){res Math.max(res,prices[…

【ONE·MySQL || 常见的基本函数】

总言 主要内容&#xff1a;介绍了MySQL中常用的基本函数。一些聚合函数、时间日期函数、字符串函数、数字函数等。       文章目录 总言1、聚合函数1.1、汇总1.2、COUNT()函数1.2.1、基本说明1.2.2、使用演示 1.3、SUM( )函数1.3.1、基本说明1.3.2、使用演示 1.4、AVG( )函…

[C]jupyter中使用C

[C]jupyter中使用C 安装使用用处 安装 https://github.com/brendan-rius/jupyter-c-kernel 下拉找到3条命令&#xff0c;装就可以了 mac和linux可用 python3可用&#xff0c; 2不可以 第二条命令可以改为 : python3 install_c_kernel 小总结&#xff1a;如果有问题&#xff0…

Packet Tracer - Layer 2 Security

Packet Tracer - 第二层安全配置任务 目标 确保将中心交换机&#xff08;3560型号&#xff09;设置为根桥。保护生成树协议参数以防止对STP的操控攻击。启用端口安全功能以防止CAM表溢出攻击。 背景/场景 最近网络遭受了一系列攻击。因此&#xff0c;网络管理员已指派您负责…

JNPF低代码是什么,怎么样?

低代码开发平台已经是程序员日常标配效率工具了&#xff0c;曾经我们拿到开发需求后&#xff0c;要先配 Vue & React 等框架环境、再选需要引入的第三方组件库&#xff0c;最后穿针引线&#xff0c;调试搭建起需要的后台工具。这其中无数深坑等着我们去趟&#xff0c;直到低…

手把手教你制作一本旅游宣传册

​随着旅游业的蓬勃发展&#xff0c;越来越多的人选择在闲暇时间外出旅行。为了吸引更多的游客&#xff0c;制作一本精美的旅游宣传册至关重要。无论你是旅游爱好者还是旅游从业者&#xff0c;制作一本精美的旅游宣传册将有助于吸引更多的游客&#xff0c;提升你的业务。 一、确…

C#编程-描述异常

描述异常 异常是在程序执行期间出现的错误。异常情况发生在运算不能正常完成的时候。当程序中出现异常是,系统会抛出错误。错误通过异常处理过程被处理。 例如,System.IO.IOException异常在试图访问非法流对象时抛出。同样,如果分母是0,整数除法运算抛出System.DivideByZ…

重生奇迹MU中的一些仓库细节问题!

一般游戏新人如果不花一点时间的话&#xff0c;根本难以把握好游戏中的节奏&#xff0c;甚至有可能连仓库都不会使用&#xff0c;原本与仓库相关的细节问题就有许多&#xff0c;若是不仔细给予关注的话&#xff0c;难免就会忙中出错。 重生奇迹MU当中的仓库位置 剑士出生地是…