Glassfish v3 启动时失败。“无法分配内存”

Glassfish v3 启动时失败。“无法分配内存”

这个问题很清楚

https://serverfault.com/questions/210275/fail-to-start-glassfish-3-1-java-io-ioexception-error-12-cannot-allocate-mem

但就我而言,我有一个 512M 内存的 Ubuntu 10.04 vps。似乎我不需要更改任何配置。但是当启动服务器时,我得到了这个异常

VM failed to start: java.io.IOException: Cannot run program "/usr/lib/jvm/java-6-sun-1.6.0.22/bin/java" (in directory "/home/glassfish/glassfish/domains/domain1/config"): java.io.IOException: error=12, Cannot allocate memory

所以,我设定

<jvm-options>-Xmx512</jvm-options>

<jvm-options>-Xmx400</jvm-options>

异常仍然存在。我做错了什么?

的结果免费-m

             total       used       free     shared    buffers     cached
Mem:           512         43        468          0          0          0
-/+ buffers/cache:         43        468
Swap:            0          0          0

的结果猫/ proc / user_beancounters

Version: 2.5
       uid  resource                     held              maxheld              barrier                limit              failcnt
   146049:  kmemsize                  2670652              5385253             51200000             51200000                    0
            lockedpages                     0                    8                 2048                 2048                    0
            privvmpages                 11134               134522               131200               262200                    4
            shmpages                      648                 1352               128000               128000                    0
            dummy                           0                    0                    0                    0                    0
            numproc                        12                   73                  500                  500                    0
            physpages                    6519                28162                    0            200000000                    0
            vmguarpages                     0                    0               512000               512000                    0
            oomguarpages                 6527                28169               512000               512000                    0
            numtcpsock                      4                   14                 4096                 4096                    0
            numflock                        0                    5                 2048                 2048                    0
            numpty                          1                    2                   32                   32                    0
            numsiginfo                      0                    3                 1024                 1024                    0
            tcpsndbuf                  159600               265744             20480000             20480000                    0
            tcprcvbuf                   65536              3590352             20480000             20480000                    0
            othersockbuf                44232                90640             20480000             20480000                    0
            dgramrcvbuf                     0                12848             10240000             10240000                    0
            numothersock                   22                   31                 2048                 2048                    0
            dcachesize                      0                    0             10240000             10240000                    0
            numfile                      1002                 1474                50000                50000                    0
            dummy                           0                    0                    0                    0                    0
            dummy                           0                    0                    0                    0                    0
            dummy                           0                    0                    0                    0                    0
            numiptent                      24                   24                 2048                 2048                    0

谢谢

答案1

请记住,Java 要求从一个连续的内存空间中分配堆空间,因此您的内存可能会碎片化到进程无法获取足够大的空间来初始化的程度(尽管它不会分配-Xmx甚至-Xms立刻占用大量内存。

请参阅此 stackoverflow 帖子,了解一个潜在的解决方案:

如何解决调用 Runtime#exec() 时出现“java.io.IOException:error=12,无法分配内存”?

相关内容