首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JVM内存消耗

JVM内存消耗
EN

Server Fault用户
提问于 2009-05-23 18:17:29
回答 4查看 2.4K关注 0票数 9

我试图在一个低内存系统(150-256 to )上运行tomcat。尽管我使用-Xmx64m启动JVM (无论如何,这应该是默认的),但这个过程会立即占用200Mb+。

我想知道为什么JVM本身需要这么多内存,或者是否有一种方法来调优?对于内存消耗低的情况,其他JVM比sun更好吗?它们与tomcat一起工作吗?

EN

回答 4

Server Fault用户

回答已采纳

发布于 2009-05-26 11:40:42

除了堆(由-Xms-Xmx指定)之外,还需要包括非堆区域。其中包括

  • Perm Gen最初在32位系统上是64 is,在64位系统上是96 is。
  • 代码缓存,根据JVM的不同,在20到40 on之间。
  • NIO缓冲区(从中提取DirectByteBuffers ),最初为64 is。

还有JVM本身的工作空间,它将是几十mb。

您还应该知道在使用服务器类计算机时的自动调整大小随着时间的推移,服务器类的定义 (2Gb内存,不止一个核心)遭受了一定程度的贬值,现在大多数机器都能够触发-server优化。我的建议总是指定-Xms-Xmx设置,并传递-server,除非您能想到一个很好的理由。

票数 5
EN

Server Fault用户

发布于 2009-05-26 11:20:27

使用-Xmx选项,可以限制JVM保留的堆的大小.JVM需要额外的资源..。

“感谢内存”*是一篇很好的文章,它解释了JVM如何使用内存.

除此之外,您还可以尝试IBM的JVM,它应该与Tomcat一起工作,不知道某些免费JVM实现是否有效。

然而,我不认为一台记忆力那么低的机器会对你有任何好处。Java只需要内存。

*由于新用户不能提交超链接,你必须自己查找那篇文章.这是谷歌第一次因“感谢内存ibm”而受到欢迎。

票数 3
EN

Server Fault用户

发布于 2009-06-19 13:26:41

还可以试试JRockit JVM,它的内存占用较少。您仍然可以免费下载BEA许可的JRockit版本。即甲骨文接管BEA之前的版本。

有关下载链接,请参见http://forums.oracle.com/forums/thread.jspa?threadID=816133&tstart=0

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/11628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档