jps和jstatd

一. jps (Java Virtual Machine Process Status Tool)——主要用来输出JVM中运行的进程状态信息    

语法格式: jps [options] [hostid]  如果不指定hostid默认为当前服务器

options:

-q:不输出类名,JAR文件名和通过main方法传递的参数,仅生成本地VM标识符列表

-m:输出通过main方法传递的参数,对于嵌入式JVM,输出可能为null

-l:输出main方法的完整程序包名称或JAR文件的完整路径名

-v:输出传递给JVM的参数

-V:输出通过标志文件传递给JVM的参数(例如:.hotspotrc文件或由-XX:Flags = <文件名>参数指定的文件)

-J (option):将选项传递给java程序(例如:-J-Xms48m将启动内存设置为48兆字节。 -J通过是一个通用的约定执行用Java编写的应用程序的底层VM选项)

注意:如果需要查看其他机器上的jvm进程,需要在待查看机器上启动jstatd

二. jstatd (Java Virtual Machine jstat Daemon)——监听远程服务器的CPU,内存,线程等信息

语法格式:jstatd [options]

options:

-nr:当没有找到现有的RMI注册表时,不会尝试在jstatd进程中创建内部RMI注册表

-p port:希望找到RMI注册表的端口号,或者如果未找到,则在未指定-nr的情况下创建RMI注册表

-n rminame:远程RMI对象在RMI注册表中绑定的名称。 默认名称是JStatRemoteHost。 如果多个jstatd服务器在同一主机上启动,通过指定该选项,可以使每个服务器导出的RMI对象的名称唯一。 但是,这样做将需要保证在监视客户端的hostid和vmid中存在唯一的服务器名称。

-J (option):将选项传递给java程序(例如:-J-Xms48m将启动内存设置为48兆字节。 -J通过是一个通用的约定执行用Java编写的应用程序的底层VM选项)

上面所说的一切都是建立在jstatd服务器启动的情况下,启动如下:(谨防使用)

1.  创建jstatd服务器授权文件jstatd.all.policy,代码如下,然后将改文件放到Java/bin目录下。

grant codebase "file:${java.home}/../lib/tools.jar" {

permission java.security.AllPermission;

};

2. 切换到java/bin目录下,启动Jstatd服务器,默认端口是1099

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

3. 如若出现端口占用问题,在启动jstatd服务器时选择其它端口。

//查看端口是否被占用命令

lsof -i:1099

//启动jstatd服务器时,指定其它端口

rmiregistry 2000 & jstatd -J-Djava.security.policy=jstatd.all.policy -p 2000

4. jstatd服务器启动成功后,在VisualVM添加Jstatd服务器地址,就会自动连接成功,并获取服务器的CPU,内存,线程等信息。

你可能感兴趣的:(jps和jstatd)