如何在运行时检查服务器的“JVM / CPU /内存”?

时间:2012-03-07 15:54:44

标签: java api plugins

创建作业时,我想将其分配给密度较低的服务器。如何在运行时检查服务器的“JVM / CPU /内存”? (我有4个服务器)(İt必须向我返回一个值)

2 个答案:

答案 0 :(得分:1)

通过使用系统属性和Java Management API,您可以在没有外部依赖性的情况下执行此操作。

这些属性足以确定VM;

java.vm.specification.version   Java Virtual Machine specification version
java.vm.specification.vendor    Java Virtual Machine specification vendor
java.vm.specification.name  Java Virtual Machine specification name
java.vm.version         Java Virtual Machine implementation version
java.vm.vendor          Java Virtual Machine implementation vendor
java.vm.name            Java Virtual Machine implementation name
java.specification.version  Java Runtime Environment specification version
java.specification.vendor   Java Runtime Environment specification vendor
java.specification.name     Java Runtime Environment specification name

您可以使用以下管理bean来确定CPU和内存:

ManagementFactory.getMemoryMXBean();
ManagementFactory.getOperatingSystemMXBean();

答案 1 :(得分:0)

嗯,你没有提供很多信息。您想以编程方式检查这些信息吗?使用哪些服务器?服务器上安装了什么操作系统?

如果您使用的是任何类型的Sun Application Server(Glassfish / Oracle AppServ),则可以使用 jconsole 。 它是一个JMX工具,可让您远程控制AppServer。

它随jdk一起提供,可以在%JAVA_HOME%/bin/jconsole.exe

中找到

启动后,您可以通过IP,端口(如果是Glassfish 8686)和您的用户凭据连接到远程计算机。

快速谷歌搜索显示,它还可以通过添加一些配置来监控tomcat,jboss和websphere服务器。

例如Tomcat:

  • 导航至%TOMCAT_HOME%/bin/catalina.bat
  • 插入行SET JAVA_OPTS=-Dcom.sun.management.jmxremote(在第一个评论栏后)
  • 重启服务器
  • 使用jconsole

希望这有帮助,玩得开心!