jvm Eclipse中Java运行时环境的内存不足

6ovsh4lw  于 2022-11-07  发布在  Eclipse
关注(0)|答案(3)|浏览(173)
There is insufficient memory for the Java Runtime Environment to continue.
    # Native memory allocation (malloc) failed to allocate 1048576 bytes for AllocateHeap

   # An error report file with more information is saved as:
   # C:\jboss-eap-services-6.4.4\bin\hs_err_pid6632.log
  Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; 
  support was removed in 8.0

对于上面的问题,我正在尝试启动jboss服务器。我尝试了一些步骤,但我无法找到正确的解决方案。

ctehm74n

ctehm74n1#

请使用以下设置为永久位置-Xms1024m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:-UseGCOverheadLimit分配内存

lnvxswe2

lnvxswe22#

你可以试着增加eclipse内存,你可以在le eclipse. ini文件中(接近eclipse可执行文件)或者在命令行参数中这样做:-256米宽-16348米宽

hgqdbh6s

hgqdbh6s3#

崩溃的是JBoss(而不是Eclipse)。所以增加Eclipse的内存是徒劳的!(事实上,这可能会使事情变得更糟。)
第二件要注意的事情是,在本地分配请求中,您的空间已经用完,因此增加常规堆的大小将不会有帮助。类似以下的选项可能不会有帮助!(事实上,它们可能会使事情变得更糟。)

-Xms1024m -Xmx1024m -XX:-UseGCOverheadLimit     # USELESS

第三件需要注意的事情是,JVM没有PermGen空间,因此通过

-XX:PermSize=512m -XX:MaxPermSize=512m          # USELESS

是徒劳的。(这是Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0的意思。)
那么真实的的问题是什么呢?
您运行的是64位JRE,所以这不是架构问题。(在32位JRE上,JVM的地址空间有严格限制......)
实际上,这是JVM本身之外的问题。基本上,JVM要求操作系统提供更多的内存,而操作系统却说“不!"。我可以想到两种可能的解释:
1.可能存在每个进程的“ulimit”,它限制了进程大小。您的JVM请求超出了该限制。
1.操作系统可能已用完虚拟地址空间或可Map虚拟内存。前者不太可能。后者通常是因为您的操作系统没有足够的RAM和/或交换空间。如果您运行的虚拟机内存资源不足,也可能会发生这种情况。
现在看来,当JVM试图增大Java堆时,可能会发生这种情况。但无论如何,问题都不是Java堆的大小。

相关问题