我在Windows 7 64位上安装了Tomcat 9作为服务。我想:
对于1和3:我天真地尝试使用j控制台,但是我找不到那里的进程,因为Tomcat正在以的形式运行。虽然我了解了如何将j控制台作为本地系统帐户运行,但当Tomcat作为服务安装时,JMX似乎已被停用。
因此,通过JMX找出当前使用的内存大小似乎非常复杂(可能启用JMX远程,应该在TLS.之上)。
对于2:我认为这是Tomcat文档的对应位置,它的内容如下:
To update the service parameters, you need to use the //US// parameter.
Update the service named 'Tomcat9'
C:\> tomcat9 //US//Tomcat9 --Description="Apache Tomcat Server - http://tomcat.apache.org/ " ^
--Startup=auto --Classpath=%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\bin\bootstrap.jar但我对这篇文章的理解不足以解决我的问题。特别是,我不想更改其他参数(比如描述、启动等)。
据我所知,在作为服务运行时,配置存储在Windows注册表中,因此tomcat/conf中的常规配置不适用或至少部分适用。
请注意,这个问题不是关于安装Tomcat,而是关于修改现有安装。另外,我不感兴趣的是某种(以某种方式)获得所需结果的麻烦事,但我对这样做的最佳实践感兴趣;而且,最好有指向参考文档的链接。
发布于 2017-05-17 06:59:31
发布于 2017-05-17 08:21:18
对于1和3,有jmap。您只需要知道正在运行的tomcat实例的进程Id。
jmap -heap 7082下面是我现在正在运行的jvm的输出(相关行):
Heap Configuration:
MinHeapFreeRatio = 0
MaxHeapFreeRatio = 100
MaxHeapSize = 1073741824 (1024.0MB) // that is -Xmx flag
....
NewSize = 357564416 (341.0MB) // 1
MaxNewSize = 357564416 (341.0MB)
OldSize = 716177408 (683.0MB) // 2
1 + 2 = -Xms flag不幸的是,我无法回答2,因为我从来没有开始在windows上使用tomcat -作为一种服务(我几乎不知道这对windows意味着什么)。但假设这是一个由windows作为脚本启动的进程.
不应该:tomcat9 -Xms512M -Xmx2G...有效吗?再说一次,只是暗示一下,不确定。最后要注意的是,只有在jvm启动时才能更改堆,在运行时不能这样做,而tomcat显然正在运行(以防万一.)。
https://stackoverflow.com/questions/44017510
复制相似问题