我在 Tomcat 服务器上运行应用程序,我想访问-Xms -Xmx
和-XX:MaxPermSize
JVM 参数值的值,以便我可以记录它们以获得调试帮助。
我试图在System.properties
和 using中找到这些参数System.getEnv()
,但它们不存在。是否有另一种方法来获取它们,或者,它们是否存在System.properties
并System.getEnv()
表明这些选项尚未设置?
我在 Tomcat 服务器上运行应用程序,我想访问-Xms -Xmx
和-XX:MaxPermSize
JVM 参数值的值,以便我可以记录它们以获得调试帮助。
我试图在System.properties
和 using中找到这些参数System.getEnv()
,但它们不存在。是否有另一种方法来获取它们,或者,它们是否存在System.properties
并System.getEnv()
表明这些选项尚未设置?
您可以从 Runtime 类中获取基本信息,包括总内存、最大内存和空闲内存;有关详细信息,请参阅运行时 JavaDoc。
如果这还不够信息,您可以使用管理扩展来获取有关每个内存池中当前和峰值内存使用情况的更多信息。您可以使用JConsole上的 MBeans 选项卡浏览正在运行的 JVM 的所有可用信息,该选项卡包含在 Oracle JDK 中。具体来说,查看具有对象名称java.lang:type=Memory
和的 MBean java.lang:type=MemoryPool,name=*
。
使用所需信息识别 MBean 后,您可以使用ManagementFactory类以编程方式访问它们。这允许对所有 MBean 进行通用访问(您可以自己制作),但对平台提供的某些 MBean 有方便的方法,包括:
Runtime.totalMemory()怎么样(当然,如果你有权限,或者安全性被禁用)?
另一种解决方法是搜索已启动 tomcat 的命令行并对其进行解析。在linux中很容易,但是在windows中...