创建作业时,我想将其分配给密度较低的服务器。如何在运行时检查服务器的“JVM / CPU /内存”? (我有4个服务器)(İt必须向我返回一个值)
答案 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
(在第一个评论栏后)希望这有帮助,玩得开心!