【发布时间】:2011-02-01 21:20:44
【问题描述】:
Tomcat 5.5.x 和 6.0.x
Grails 1.6.x
Java 1.6.x
操作系统 CentOS 5.x(64 位)
内存为384M的VPS服务器
JAVA_OPTS : 尝试了很多组合 - 包括以下
导出 JAVA_OPTS='-Xms128M -Xmx512M -XX:MaxPermSize=1024m'
export JAVA_OPTS='-server -Xms128M -Xmx128M -XX:MaxPermSize=256M'
(根据http://www.grails.org/Deployment的建议)
我创建了一个空白的 Grails 应用程序,即简单地通过使用命令 grails create-app 然后对其进行 WAR 处理
我在 VPS 服务器上运行 Tomcat
当我只是启动Tomcat服务器,没有部署任何应用程序时,可用内存约为236M 并且使用的内存大约是156M
当我部署“空白”应用程序时,内存消耗飙升至 360M,最终 Tomcat 实例在占用所有空闲内存后立即被杀死
如您所见,我的应用程序尽可能轻巧。
不知道为什么内存消耗这么高。
我实际上是在对实际应用程序进行故障排除,但已将范围缩小到更易于分享和解释的场景。
更新 我在 Windows 上的本地 Tomcat 5.5.x 上测试了相同的“空白”应用程序,它运行良好
Java 进程的内存消耗从 32M 猛增到 107M。但它并没有崩溃,它仍然在可接受的范围内
所以继续寻找答案...我想知道我的 Linux 机器是否有问题。不知道是什么...
更新 2 另见http://www.grails.org/Grails+Test+On+Virtual+Server
这证实了我的信念,即我的简单空白应用程序应该在我的配置上运行。
【问题讨论】:
-
与堆本身(Xms 和 Xmx)相比,您的 XX:MaxPermSize 似乎过高。你能把它减少到 256。这不能解决你的问题,它只是一个观察。
-
我尝试了几种组合 - 请参阅更新的问题。谢谢!
标签: java web-applications tomcat grails