如何以编程方式访问check -Xms -Xmx和-XX:MaxPermSize JVM参数值?

时间:2011-12-19 16:44:38

标签: java tomcat jvm-arguments

  

可能重复:
  Read Java JVM startup parameters (eg -Xmx)

我正在Tomcat服务器上运行一个应用程序,我想访问-Xms -Xmx-XX:MaxPermSize JVM参数值的值,以便我可以记录它们以获得调试方面的帮助。

我试图找到System.properties中列出的这些参数,并使用System.getEnv(),但它们不存在。是否有另一种方式来获取它们,或者,或者是,System.propertiesSystem.getEnv()中是否存在缺少这些选项尚未设置的迹象?

2 个答案:

答案 0 :(得分:4)

您可以从Runtime类中获取基本信息,包括总内存,最大内存和可用内存;有关详细信息,请参阅Runtime JavaDoc

如果信息不足,您可以使用管理扩展来获取有关每个内存池中当前和峰值内存使用情况的更多信息。您可以使用Oracle JDK附带的JConsole上的MBeans选项卡浏览正在运行的JVM的所有可用信息。具体来说,查看对象名为java.lang:type=Memoryjava.lang:type=MemoryPool,name=*的MBean。

一旦您使用所需信息识别MBean,就可以使用ManagementFactory类以编程方式访问它们。这允许对所有MBean的通用访问(您可以自己创建),但是为平台提供的一些MBean提供了便利方法,包括:

答案 1 :(得分:2)

Runtime.totalMemory()怎么样(当然,如果您有权限,或者安全性被禁用)?

另一种解决方法是搜索已启动tomcat并解析它的命令行。在linux中很简单,但在windows中......