我正在尝试使用 Java 1.6 在我的 Ubuntu (8.04) VPS 上安装 Glassfishv3。
我最初尝试使用以下命令启动服务器:
asadmin 启动域
并收到以下错误消息:
JVM 启动失败:com.sun.enterprise.admin.launcher.GFLauncherException:服务器过早退出,退出代码为 1。在服务器退出之前,它产生了以下输出:
VM 初始化期间发生错误无法为对象堆保留足够的空间
命令 start-domain 失败。
我尝试再次运行它并收到不同的消息:
等待 DAS 启动 启动域时出错:域 1。服务器提前退出,退出代码为 1。在服务器停止运行前,它产生了以下输出:
VM 初始化期间发生错误,无法为对象堆保留足够的空间,无法创建 Java 虚拟机。
命令 start-domain 失败。
如果我运行,cat /proc/meminfo
我会得到以下内容(所有其他值都是 0kB):
MemTotal: 1310720 kB
MemFree: 1150668 kB
LowTotal: 1310720 kB
LowFree: 1150668 kB
我已经检查了内容glassfish/glassfish/domains/domain1/config/domain.xml
并且JVM设置是:
-Xmx512m
如能提供任何帮助解决该问题,我们将不胜感激。
答案1
您收到的错误意味着 JVM 无法申请足够的内存来启动。尽管系统报告有大量可用内存,但由于内存过量使用机制,VPS 中的 mmap 调用也可能失败。
JVM 的 Xmx 选项是堆内存上限。您可能需要对其进行调整,但它不应阻止 glassfish 启动。您需要的是 Xms 选项。默认情况下,它是 128Mb,请先尝试降低它。
答案2
我的服务器内存限制类似,但我将 JVM 的内存设置降低到 128,然后启动了。不过,在 256 时似乎失败了。不确定这是否与我的 VPS 的“保证”RAM 有关。