资讯专栏INFORMATION COLUMN

获取远程服务器上 Java 进程的运行状态

cartoon / 1463人阅读

摘要:为了安全考虑有些服务器会被限制登录本文介绍如何获取远程服务器上进程的运行状态启动服务在服务器端启动服务后远程的机器可以通过协议获取服务器上程序的运行状态在服务器上创建的授权文件假设文件路径为内容如下如果你的目录不是的话请改为正确的值接下来通

为了安全考虑, 有些服务器会被限制登录. 本文介绍如何获取远程服务器上 Java 进程的运行状态.

启动 jstatd 服务

在服务器端启动 jstatd 服务后, 远程的机器可以通过 rmi 协议获取服务器上 Java 程序的运行状态.

在服务器上创建 jstatd 的授权文件, 假设文件路径为/etc/jstatd.all.policy, 内容如下:

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

如果你的JAVA_HOME目录不是/usr/local/java的话, 请改为正确的值.

接下来通过以下命令启动 jstatd 服务:

jstatd -J-Djava.security.policy=/etc/jstatd.all.policy -p 12345

需要注意的地方有:

授权文件的路径需要改成你自己的, 最好使用绝对路径.

-p参数指定 jstatd 服务监听的端口. 如果不指定的话, 默认的端口为 1009. 不过从我自己的实践来看, 最好还是设定一个比1024大的端口号.

远程使用jps, jstat命令

在服务器上启动 jstatd 服务之后, 就可以在自己的机器上查看服务器上运行的 Java 进程了. 假设服务器的IP为 192.168.2.37, jstatd 服务监听的端口号为 12345.

首先通过 jps 命令获取服务器上运行的 Java 进程列表:

jps -l rmi://192.168.2.37:12345

拿到 Java 进程的 pid 列表之后, 可以通过 jstat 命令获取某个进程的 GC 信息:

jstat -gcutil rmi://39939@192.168.2.37:12345 1000 1000

其中 39939 表示 Java 进程的pid.

远程使用 VisualVM 监控 Java 应用

通过VisualVM, 可以在图形面板上看到很多 Java 应用的信息, 相当于多个命令(jps, jstat, jstack, jmap, jinfo)的集合.

VisualVM 是一个图形应用, 只能运行在本机, 然后通过远程连接, 获取服务器上的 Java 应用的信息.

通过 $JAVA_HOME/bin/jvisualvm 命令启动 VisualVM, 点击下图的红框部分, 输入要连接服务器的IP地址:

然后右键点击服务器地址, 可以看到能够通过2种方式连接服务器, 分别是 jmx 和 jstatd.

按照上述的步骤在服务器上启动 jstatd 服务后, 就能够以 jstatd 的形式连接到远程服务器了.

VisualVM 通过 jstatd 连接的方式能够获取的信息比较有限. 如果想获取更完整的 Java 应用信息, 可以通过 jmx 的方式连接服务器上的 Java 进程. 需要在启动 Java 应用的时候, 指定以下和 jmx 相关的参数:

-Djava.rmi.server.hostname=10.11.2.139 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=9090

java.rmi.server.hostname参数指定ip或者host, com.sun.management.jmxremote.port参数指定 jmx 监听的端口.

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64200.html

相关文章

  • Aidl进程间通信详细介绍

    摘要:实际开发中案例操作通信业务需求多进程通信应用服务端某客户端调试工具。当服务端和客户端位于同一个进程时,方法调用不会走跨进程的过程,当两者处于不同晋城市,方法调用走过程,这个逻辑由的内部代理类完成。 目录介绍 1.问题答疑 2.Aidl相关属性介绍 2.1 AIDL所支持的数据类型 2.2 服务端和客户端 2.3 AIDL的基本概念 3.实际开发中案例操作 3.1 aidl...

    CoreDump 评论0 收藏0
  • 深入理解虚拟机之虚拟机性能监控和故障处理工具

    摘要:监控和故障处理工具显示指定系统内所有的虚拟机进程用于收集虚拟机各方面的运行数据。的常用功能选项测试上面输出了我正在运行程序的包名下的类名虚拟机统计信息监视工具使用于监视虚拟机各种运行状态信息的命令行工具。 《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版》读书笔记与常见面试题总结 本节常见面试题(推荐带着问题阅读,问题答案在文中都有提到): JVM调优的常见命令行工具有哪些?...

    jas0n 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<