利用JDK1.5的工具对远程的Java应用程序进行监测(摘录)
部署过程描述如下:
1. 在需要监测的机器(我这里是 Linux 机器)部署相关应用:
a) 在你需要进行监测的机器上安装 JDK1.5 (狂晕一阵子),别倒下(这个部分就不多说了,因为如果这里还要解释的话,那我就晕了)。
b) 正确设置 Java 的运行环境。
c) 启动 jstatd 进程。
命令如下: ./jstatd -J-Djava.security.policy=all.policy
一般来说呢,这里是会出现问题的,那就是 permission 的问题了,还好, Sun 的网站上给了相关的解决方法,方法如下,在 jdk/…/security/ java.policy 文件中添加下面的代码:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
然后重新启动 jstatd 进程。
d) 完了,别让人乱动就好了,我经常是不小心就按 CTRL+C 把程序关闭了。
2. 在客户端(监控者使用的机器)的操作:
a) 使用 jps 查看远端机器有哪些 JVM 进程在使用当中,命令如下:
jps 172.25.1.24 // 远端机器的 IP 地址或名称
屏幕输入如下:
13686 Jstatd
14115 XXXJavaServer
15117 Jserver
b) 从上面可以看到远端机器的 Jstatd 进程已经启动起来了。我们就可以使用 jstat 对相关进程的具体情况进行查看。
Jstat 命令用法如下:
jstat -〈option〉 [-t] [-h〈lines〉] 〈vmid〉 [〈interval〉 [〈count〉]]
解释如下:
Option 包括以下选项:
-class
-compiler
-gc
-gccapacity
-gccause
-gcnew
-gcnewcapacity
-gcold
-gcoldcapacity
-gcpermcapacity
-gcutil
-printcompilation
Vmid 就是 jps 查看到的进程 id ,如上 Jserver 的进程 id 是 15117 。
Interval 是时间间隔,单位为毫秒, 1000 就是一秒。
Count 就是需要查看的次数。
例子假设我们需要查看 172.25.1.24 机器 vmid 为 15117 的 gc 的情况,可以输入下面的命令:
jstat -gc 15117@172.25.1.24 1000 3
然后你能看到四行信息(一行为 title ,剩下的就是你要的信息了),仔细看看就可以发现很多信息的了(如果不明白,可以问我, 6-6 )。
c) 那么下面就开始配置可视化的监控包, jvmstat ,下载好了后,解压到任意目录。
执行 visualgc ,然后就可以看到可视化的监控窗口。不过,好像现在只提供 Linux 下的 visualgc 的启动脚本,所以在 Windows 下或者 Linux 最好使用我下面提供的方式:
在 Linux 下:
/usr/java/jdk1.5/bin/java –Xbootclasspath/p:” /usr/java/jdk1.5/lib/tools.jar” –jar jvmstat/jars/visualgc.jar vmid@server
在 Windows 下也一样,就是改改 jdk 的路径就好了。
成功执行后你就能看见一个 java 的监视窗口(样子还蛮专业的),这个时候就 可以开始监视了。
转载于:https://www.cnblogs.com/kentyshang/archive/2009/08/20/1550747.html
利用JDK1.5的工具对远程的Java应用程序进行监测(摘录)相关推荐
- 使用 Eclipse 远程调试 Java 应用程序
转载地址:使用 Eclipse 远程调试 Java 应用程序 远程调试对应用程序开发十分有用.例如,为不能托管开发平台的低端机器开发程序,或在专用的机器上(比如服务不能中断的 Web 服务器)调试程序 ...
- java程序ssh置顶_使用shell脚本启动远程(SSH)Java应用程序不会返回本地提示
我见过类似的问题,所有已解决的问题已经解决/不适用. 我在启动Java应用程序的远程计算机中有一个bash脚本.相关的行将是: #!/usr/bin/env bash ... java -cp /fu ...
- 04-20.eri-test GKE(Google K8S Engine)上的Intellij远程调试Java应用程序
Prepare the docker image 为了调试Java应用程序,我们需要向远程应用程序添加一些命令行参数. 在kubernetes部署有效负载中设置参数 DEBUG_OPTIONS=&qu ...
- 制作简单的java应用程序_使用exe4j工具制作简单的java应用程序
首先需要下载exe4j工具并进行安装,下面是利用exe4j工具制作应用程序的步骤. 1.首先将工程导出为可运行的jar包,选择extract required libralies into gener ...
- idea远程调试Java应用程序
在启动的程序中加入参数 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8087 例:java -jar -Xdebu ...
- UML设计java程序_利用UML序列图设计Java应用程序详解
[IT168 技术文章] Java应用程序由许多类所构成,是Java实现面向对象应用程序的核心.类图主要描述Java应用程序中各种类之间的相互静态关系,如类的继承.抽象.接口以及各种关联.要利用UML ...
- Java安装程序制作工具
Java安装程序制作工具 IzPack 是一个 Java 安装程序制作工具,能够制作一些简单的安装程序.制作出来的安装程序能在 Unix-like, MacOS X, Windows 等系统平台上运行 ...
- intellij远程调试_IntelliJ中的远程调试Wildfly应用程序
intellij远程调试 远程调试Java应用程序意味着使用本地开发环境连接到远程运行的应用程序. Java开箱即-agentlib:jdwp[=options]支持远程调试:目标应用程序必须使用-a ...
- IntelliJ中的远程调试Wildfly应用程序
远程调试Java应用程序意味着使用本地开发环境连接到远程运行的应用程序. Java开箱即-agentlib:jdwp[=options]支持远程调试:目标应用程序必须使用-agentlib:jdwp[ ...
最新文章
- FluentNhibernate 的数据库连接的配置
- 在一颗度为4的树T中,若有20个度为4的结点,10个度为3的结点,1个度为2的结点,10个度为1的结点,则树T的叶结点个数是( )
- redis种类型对应java类型_Redis的五种基本数据类型介绍
- Ubuntu出现没有正确安装GNOME电源管理器的默认配置
- 什么是指利用计算机和现代,现代计算机一般指什么计算机?
- 友盟统计java代码_SFAnalytics 分析友盟统计源码,反编译 SDK,还有部分没有 出来 android 259万源代码下载- www.pudn.com...
- Algorithm:贪心策略之区间选点问题
- 95 后程序员一出校门就拿年薪 32 万?
- 管理信息系统案例分析_BIM案例分析—地下空间工程(二)
- 标准Io编程学习笔记
- 程序员学习交流的网站论坛
- ele-calendar 组件的使用
- 安卓手机投屏到win10电脑
- 细胞和基因治疗产品法律监管问题及伦理的研究
- python实现火车票查询_火车票查询(python版)
- MIUI9系统详细刷成开发版启用root权限的教程
- tensorflow2.4使用GooleNet实现识别植物花朵图像项目
- Python在Windows下输出响铃【内容已更新】
- 司创电梯发卡软件_防复制电梯IC卡系统上位机管理软件设计
- python 解压zip密码正确但解压失败,Python实现加密的ZIP文件解压(密码已知