我试图在一个低内存系统(150-256 to )上运行tomcat。尽管我使用-Xmx64m启动JVM (无论如何,这应该是默认的),但这个过程会立即占用200Mb+。
我想知道为什么JVM本身需要这么多内存,或者是否有一种方法来调优?对于内存消耗低的情况,其他JVM比sun更好吗?它们与tomcat一起工作吗?
发布于 2009-05-26 11:40:42
除了堆(由-Xms
和-Xmx
指定)之外,还需要包括非堆区域。其中包括
DirectByteBuffer
s ),最初为64 is。还有JVM本身的工作空间,它将是几十mb。
您还应该知道在使用服务器类计算机时的自动调整大小。随着时间的推移,服务器类的定义 (2Gb内存,不止一个核心)遭受了一定程度的贬值,现在大多数机器都能够触发-server
优化。我的建议总是指定-Xms
和-Xmx
设置,并传递-server
,除非您能想到一个很好的理由。
发布于 2009-05-26 11:20:27
使用-Xmx选项,可以限制JVM保留的堆的大小.JVM需要额外的资源..。
“感谢内存”*是一篇很好的文章,它解释了JVM如何使用内存.
除此之外,您还可以尝试IBM的JVM,它应该与Tomcat一起工作,不知道某些免费JVM实现是否有效。
然而,我不认为一台记忆力那么低的机器会对你有任何好处。Java只需要内存。
*由于新用户不能提交超链接,你必须自己查找那篇文章.这是谷歌第一次因“感谢内存ibm”而受到欢迎。
发布于 2009-06-19 13:26:41
还可以试试JRockit JVM,它的内存占用较少。您仍然可以免费下载BEA许可的JRockit版本。即甲骨文接管BEA之前的版本。
有关下载链接,请参见http://forums.oracle.com/forums/thread.jspa?threadID=816133&tstart=0。
https://serverfault.com/questions/11628
复制相似问题