当我设置 -Xmx1024M 时,htop 报告 Tomcat 8.5 消耗 4GB
htop reporting Tomcat 8.5 as consuming 4GB when I've set -Xmx1024M
我已通过在 setenv.sh
中设置以下内容,将我的 Tomcat 实例配置为不使用超过 1GB 的 RAM:
$ cat /opt/tomcat8.5/bin/setenv.sh
#!/bin/sh
export JAVA_OPTS="-Djava.awt.headless=true -server -Xms48m -Xmx1024M -XX:MaxPermSize=512m"
确实,运行 Tomcat 实例似乎考虑到了这一点:
$ ps aux | grep -i tomcat-juli.jar | grep -v grep | awk '{print }'
26105
$ sudo jinfo 26105 | grep VM\ flagsNon-default VM flags: -XX:CICompilerCount=3 -XX:InitialHeapSize=50331648 -XX:MaxHeapSize=1073741824 -XX:MaxNewSize=357564416 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=16777216 -XX:OldSize=33554432 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:+UseParallelGC
并且通过使用 Java VisualVM 附加到 运行 实例,我看到一张与上述兼容的图片:
为什么 htop
报告我的 Tomcat 占用了我 8 GB 内存的一半?
限制堆大小 (-Xmx1024M
) 仅限制 Java 堆的大小。 JVM 可以根据需要自由使用 "native" 内存,以便 运行 本身。
不属于 Java 堆的东西:
- 永久代
- 线程堆栈
- JIT 编译的本机代码
查看 Java native memory usage,了解如何深入了解 Java 堆外正在使用的内存。
注意,如果你愿意给你的 JVM 一个完整的 gig 或 RAM,你最好设置 -Xms
== -Xmx
,否则你只会浪费 CPU 个周期每隔一段时间重新调整内存大小,直到堆达到其最大大小。
我已通过在 setenv.sh
中设置以下内容,将我的 Tomcat 实例配置为不使用超过 1GB 的 RAM:
$ cat /opt/tomcat8.5/bin/setenv.sh
#!/bin/sh
export JAVA_OPTS="-Djava.awt.headless=true -server -Xms48m -Xmx1024M -XX:MaxPermSize=512m"
确实,运行 Tomcat 实例似乎考虑到了这一点:
$ ps aux | grep -i tomcat-juli.jar | grep -v grep | awk '{print }'
26105
$ sudo jinfo 26105 | grep VM\ flagsNon-default VM flags: -XX:CICompilerCount=3 -XX:InitialHeapSize=50331648 -XX:MaxHeapSize=1073741824 -XX:MaxNewSize=357564416 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=16777216 -XX:OldSize=33554432 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:+UseParallelGC
并且通过使用 Java VisualVM 附加到 运行 实例,我看到一张与上述兼容的图片:
为什么 htop
报告我的 Tomcat 占用了我 8 GB 内存的一半?
限制堆大小 (-Xmx1024M
) 仅限制 Java 堆的大小。 JVM 可以根据需要自由使用 "native" 内存,以便 运行 本身。
不属于 Java 堆的东西:
- 永久代
- 线程堆栈
- JIT 编译的本机代码
查看 Java native memory usage,了解如何深入了解 Java 堆外正在使用的内存。
注意,如果你愿意给你的 JVM 一个完整的 gig 或 RAM,你最好设置 -Xms
== -Xmx
,否则你只会浪费 CPU 个周期每隔一段时间重新调整内存大小,直到堆达到其最大大小。