这是我的setenv.bat (windows安装)。它是MySQL企业监控服务经理。
set JAVA_HOME=D:\MYSQL_~2\SERVIC~1\java
set JAVA_OPTS= ++JvmOptions="-XX:+UseParallelOldGC" ++JvmOptions="-XX:+UseBiasedLocking" ++JvmOptions="-XX:+HeapDumpOnOutOfMemoryError" ++JvmOptions="-XX:HeapDumpPath=D:\MYSQL_~2\SERVIC~1\apache-tomcat\temp" ++JvmOptions="-Xms128m" ++JvmOptions="-Xmx256m" ++JvmOptions="-XX:MaxPermSize=256m" 我想将内存占用保持在200米以下(我的意思是在任务管理器中查看tomcat6.exe )。
它总是在400米以上!怎么了?
编辑:我的setenv.bat在tomcat\bin下面
发布于 2012-05-28 17:12:38
-Xms和-Xmx分别定义了最小堆大小和最大堆大小。因此,单是堆就可以超过256米的配置。但是,您还设置了-XX:MaxPermSize=256m,它定义了永久生成可能占用的空间。堆和永久生成是分开的,因此您的JVM可以占用最多256 m(通过Xmx) +256 m (MaxPermSize) =512 m的内存。
您可以尝试降低Xmx和MaxPermSize,以实现您的最大目标。200米总使用量,通过设置它们,使之和不超过您的最大值。但是,这取决于部署的应用程序(S)是否工作,或者Tomcat是否会与OutOfMemoryError崩溃(不过值得一试)。
甲骨文有一个很好的指南,解释了不同代人如何在他们的垃圾收集器调优参考中总结。(我假设您使用的是Oracle (以前的Sun) JVM,因为您没有指定任何版本,而且它仍然应该是最流行的版本。)
https://serverfault.com/questions/393331
复制相似问题