无法使用内存设置-Xmx768M启动JBoss 5
我们有一台装有2048 RAM的Windows电脑。无法使用内存设置-Xmx768M启动JBoss 5,jboss,jboss5.x,Jboss,Jboss5.x,我们有一台装有2048 RAM的Windows电脑。 我们尝试为JBoss使用下一个内存设置: -Xms256M-Xmx768M-XX:MaxPermSize=256M 但它无法启动: 初始化过程中发生错误 的虚拟机无法保留足够的空间 for对象堆无法创建 Java虚拟机 只有将-Xmx768M更改为-Xmx512M时,JBoss才会启动 有什么问题吗 更新: 现在我们使用下一个设置 -Xms512M-Xmx768M-XX:MaxPermSize=156M有趣。将最大内存设置为513M时会发生什
我们尝试为JBoss使用下一个内存设置:
-Xms256M-Xmx768M-XX:MaxPermSize=256M 但它无法启动: 初始化过程中发生错误 的虚拟机无法保留足够的空间 for对象堆无法创建 Java虚拟机 只有将-Xmx768M更改为-Xmx512M时,JBoss才会启动 有什么问题吗 更新: 现在我们使用下一个设置
-Xms512M-Xmx768M-XX:MaxPermSize=156M有趣。将最大内存设置为513M时会发生什么情况 如果失败了,这可能是一个我很久没有看到的问题。我使用的一个古老的COBOL编译器拒绝在内存为640K的PC上工作,因为它们使用有符号的数字检查来确定内存是否足够 在那个世界里,640K实际上设置了高位,因此是负数,所以检查总是失败 我很难相信今天的世界会是这样,但这可能值得一看 如果它在513M时没有失败,那么可能只是您试图分配太多内存。重要的不一定是物理内存,地址空间可能是问题所在,但在32位Windows中也应该有2G(至少)的空间
显示您的设置后,您只需将1G用于permgen和heap。尝试调整这些,直到它起作用,然后发布您拥有的数字。有趣。将最大内存设置为513M时会发生什么情况 如果失败了,这可能是一个我很久没有看到的问题。我使用的一个古老的COBOL编译器拒绝在内存为640K的PC上工作,因为它们使用有符号的数字检查来确定内存是否足够 在那个世界里,640K实际上设置了高位,因此是负数,所以检查总是失败 我很难相信今天的世界会是这样,但这可能值得一看 如果它在513M时没有失败,那么可能只是您试图分配太多内存。重要的不一定是物理内存,地址空间可能是问题所在,但在32位Windows中也应该有2G(至少)的空间
显示您的设置后,您只需将1G用于permgen和heap。试着调整这些,直到它起作用,然后发布你的数据。有两个可能的原因:
- JVM在地址空间或中找不到768 MiB连续区域
- RAM和分页文件上可用区域的总大小小于1 GiB
-Xmx
和-XX:MaxPermSize
检查它们)
正如您可以-Xmx768m-XX:MaxPermSize156m
,后者值得怀疑
如果是这样,可以通过释放RAM(例如停止未使用的服务)或扩展分页文件来解决问题。可能有两种原因:
- JVM在地址空间或中找不到768 MiB连续区域
- RAM和分页文件上可用区域的总大小小于1 GiB
-Xmx
和-XX:MaxPermSize
检查它们)
正如您可以-Xmx768m-XX:MaxPermSize156m
,后者值得怀疑
如果是这样,可以通过释放RAM(例如停止未使用的服务)或扩展分页文件来解决问题。也许您可以重新启动电脑并重试。您分配的内存不能超过总物理内存。也许您可以重新启动电脑,然后再试一次。您分配的内存不能超过您的总物理内存。
-Xms256M-Xmx768M-XX:MaxPermSize=256M
在初始化时最多只能获取512M,JVM进程本身大约需要100M。机器上有那么多空闲内存吗?我们总是在4G机器上运行jboss,因为DB占用了相当多的空间
这里有一个技巧,你可以使用它来找到你可以设置的最大数量。你可以直接跑
java-version-Xms256M-Xmx768M-XX:MaxPermSize=256M
然后增加/减少值,直到找到JVM允许您设置的最大值
顺便说一句,在4G 32位windows机箱上,我们通常设置-Xms768M-Xmx1300M-XX:MaxPermSize=256M
-Xms256M-Xmx768M-XX:MaxPermSize=256M
在初始化时最多只能获取512M,JVM进程本身大约100M。机器上有那么多空闲内存吗?我们总是在4G机器上运行jboss,因为DB占用了相当多的空间
这里有一个技巧,你可以使用它来找到你可以设置的最大数量。你可以直接跑
java-version-Xms256M-Xmx768M-XX:MaxPermSize=256M
然后增加/减少值,直到找到JVM允许您设置的最大值
顺便说一句,在4G 32位windows机箱上,我们通常设置-Xms768M-Xmx1300M-XX:MaxPermSize=256M
错误似乎是说机器的虚拟内存大小小于我们通过“-Xms1303m-Xmx1303m”定义的最大堆大小。我已将其更改为“-Xms256m-Xmx512m”,并开始在本地windows设备中工作。
错误似乎是说机器的虚拟内存大小小于我们通过“-Xms1303m-Xmx1303m”定义的最大堆大小。我已将其更改为“-Xms256m-Xmx512m”,并开始在本地windows框中工作。我们将分页文件的大小设置为4096M.BTW,这不是过载的PC。我们仅将其用于JBoss。抱歉,我的猜测可能是错误的。正如paxdiablo所说,这一定是地址空间的问题。根据Sun的FAQ,(通常)我们可以在Windows上的32位JDK中使用高达1.4 GiB的heap+perm。您的PC可能有一些东西(例如地址空间中部的DLL)导致地址碎片,这样您就可以分配少于1个GIB。(c.f.)我们将分页文件的大小设置为409