2010-08-25 52 views
1

的Suse SLES10 X64运行下分配XMS我试图在VMware下运行的SLES10 x64的分配与XMS = XMX RAM。JVM不能在VMware ESX

当停止JVM抛出以下错误:

Java HotSpot(TM) 64-Bit Server VM warning: Failed to reserve shared memory (errno = 12). 

The RAM of the VM is 8 GB and they are reserved. 

的VM看到8GB,它可以通过XMX设置在运行时进行分配。

在具有16 GB RAM保留另一个虚拟SLES10通过VMWare的设置大页面,即使我没有用的RAM分配问题,只能通过回声正常工作shmax。

回声8000>的/ proc/SYS/VM/nr_hugepages

回声8589934592>的/ proc/SYS /内核/ SHMMAX

使用在另一SLES10回波命令显示没有影响/ proc/meminfo。

这里是我CONFIGS 1日在这里XMS未能分配SLES10。

 
# more /apps/liferay-portal-5.2.5/tomcat-5.5.27/bin/setenv.sh 
JAVA_HOME=/apps/java5 
JRE_HOME=/apps/java5 
JAVA_OPTS="$JAVA_OPTS -Xms3G -Xmx3G -XX:NewRatio=3 -XX:MaxPermSize=256m -XX:SurvivorRatio=20 -Dsun.rmi.dgc.client.gcInterval=1800000 -Dsun.rmi.dgc.server.gcInterval=1800000 -XX:+UsePa 
rallelGC -XX:ParallelGCThreads=4 -XX:+UseLargePages -Xloggc:/apps/gc.log -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGC -XX:+PrintGCTimeStamps - 
XX:+PrintGCDetails -Dfile.encoding=UTF8 -Duser.timezone=GMT+2 -Djava.security.auth.login.config=$CATALINA_HOME/conf/jaas.config -Dorg.apache.catalina.loader.WebappClassLoader.ENABLE_C 
LEAR_REFERENCES=false" 


more /etc/sysctl.conf 
kernel.shmmax=7516192768 
vm.nr_hugepages=3072 
vm.hugetlb_shm_group=1000 

more /etc/securtiy/limits.conf 

#     
# 

#*    soft core   0 
#*    hard rss    10000 
#@student  hard nproc   20 
#@faculty  soft nproc   20 
#@faculty  hard nproc   50 
#ftp    hard nproc   0 
#@student  -  maxlogins  4 
*    soft memlock   unlimited 
*    hard memlock   unlimited 
tomcat   soft memlock   6291456 
tomcat   hard memlock   6291456 
# End of file 


# cat /proc/meminfo 
MemTotal:  7928752 kB 
MemFree:  737004 kB 
Buffers:    0 kB 
Cached:   417368 kB 
SwapCached:   0 kB 
Active:   487428 kB 
Inactive:  324072 kB 
HighTotal:   0 kB 
HighFree:   0 kB 
LowTotal:  7928752 kB 
LowFree:  737004 kB 
SwapTotal:  2097144 kB 
SwapFree:  2097020 kB 
Dirty:    0 kB 
Writeback:   0 kB 
AnonPages:  397208 kB 
Mapped:   72180 kB 
Slab:   62136 kB 
CommitLimit: 2915792 kB 
Committed_AS: 748576 kB 
PageTables:  3292 kB 
VmallocTotal: 34359738367 kB 
VmallocUsed:  7028 kB 
VmallocChunk: 34359731271 kB 
HugePages_Total: 3072 
HugePages_Free: 2305 
HugePages_Rsvd: 897 
Hugepagesize:  2048 kB 

# ipcs -l 

Shared Memory Limits -------- 
max number of segments = 4096 
max seg size (kbytes) = 7340032 
max total shared memory (kbytes) = 4611686018427386880 
min seg size (bytes) = 1 

Semaphore Limits -------- 
max number of arrays = 1024 
max semaphores per array = 250 
max semaphores system wide = 256000 
max ops per semop call = 32 
semaphore max value = 32767 

Messages: Limits -------- 
max queues system wide = 16 
max size of message (bytes) = 65536 
default max size of queue (bytes) = 65536 

# ulimit -a 
core file size   (blocks, -c) 0 
data seg size   (kbytes, -d) unlimited 
file size    (blocks, -f) unlimited 
pending signals     (-i) 65536 
max locked memory  (kbytes, -l) unlimited 
max memory size   (kbytes, -m) unlimited 
open files      (-n) 1024 
pipe size   (512 bytes, -p) 8 
POSIX message queues  (bytes, -q) 819200 
stack size    (kbytes, -s) 8192 
cpu time    (seconds, -t) unlimited 
max user processes    (-u) 65536 
virtual memory   (kbytes, -v) unlimited 
file locks      (-x) unlimited 

在第二VM它看起来像这样

 
cat /proc/meminfo 
MemTotal:  16190448 kB 
MemFree:  176812 kB 
Buffers:   52752 kB 
Cached:   755256 kB 
SwapCached:   0 kB 
Active:   713808 kB 
Inactive:  425300 kB 
HighTotal:   0 kB 
HighFree:   0 kB 
LowTotal:  16190448 kB 
LowFree:  176812 kB 
SwapTotal: 35658896 kB 
SwapFree:  35658796 kB 
Dirty:    932 kB 
Writeback:   0 kB 
AnonPages:  333620 kB 
Mapped:   79120 kB 
Slab:   37492 kB 
CommitLimit: 36356744 kB 
Committed_AS: 646284 kB 
PageTables:  3584 kB 
VmallocTotal: 34359738367 kB 
VmallocUsed:  23500 kB 
VmallocChunk: 34359713907 kB 
HugePages_Total: 7224 
HugePages_Free: 6654 
HugePages_Rsvd: 582 
Hugepagesize:  2048 kB 

JAVA_OPTS="$JAVA_OPTS -Xms2G -Xmx2G -XX:NewRatio=3 -XX:MaxPermSize=256m -XX:SurvivorRatio=20 -Dsun.rmi.dgc.client.gcInterval=1800000 -Dsun.rmi.dgc.server.gcI 
nterval=1800000 -XX:+UseParallelGC -XX:ParallelGCThreads=2 -XX:+UseLargePages -Xloggc:/apps/gc.log -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCApplication 
ConcurrentTime -XX:+PrintGC -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Dfile.encoding=UTF8 -Duser.timezone=GMT+2 -Djava.security.auth.login.config=$CATALINA 
_HOME/conf/jaas.config -Dorg.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES=false" 

hepide01pep1:~ # ipcs -l 

------ Shared Memory Limits -------- 
max number of segments = 4096 
max seg size (kbytes) = 8388608 
max total shared memory (kbytes) = 4611686018427386880 
min seg size (bytes) = 1 

------ Semaphore Limits -------- 
max number of arrays = 1024 
max semaphores per array = 250 
max semaphores system wide = 256000 
max ops per semop call = 32 
semaphore max value = 32767 

------ Messages: Limits -------- 
max queues system wide = 16 
max size of message (bytes) = 65536 
default max size of queue (bytes) = 65536 


回答

2

难道你堆的大小更小试过..可能是2gig。你可以用 java -Xmx3G -version简单地尝试一下。让我们知道它是怎么回事,它吐出了什么。

+0

在第一机器你正在试图分配总3G + 256M = 3.25gig,但在第二你正在分配2克+256米= 2.25m.So更好的测试都与机器相同堆size.But反正2.25或3.25,两者都应该使用64位JDK。可以让我知道您使用的是JDK版本。 – 2010-08-25 17:03:48

+0

同时,我做了一些测试,并最终可以分配2900米,但不是3gb设置为3200后的巨大页面。在另一台主机上,我确实将8000页的大页数减少到了3200,现在只能分配2900m。将页面恢复到8000我现在可以再次分配4GB。稍后我会检查哪个版本和更短的命令行 – macbert 2010-08-25 21:55:07

+0

java.runtime.name \t的Java(TM)2运行环境,标准版 java.runtime.version \t 1.5.0_22-B03 java.specification.name \t的Java再试一次平台API规格 java.specification.vendor \t Sun Microsystems公司 java.specification.version \t 1.5 – macbert 2010-08-25 22:24:04

1

我已经在CentOS 5.9跌跌撞撞这个问题(错误12)使用16G堆为好。

在验证硬/软内存锁在/etc/security/limits.conf中无限并且仍然出现错误之后,我开始按照Anil的建议运行java -version,并且所有的JAVA_OPTS都完好无损。

我发现,删除“-XX:+ UseLargePages”选项摆脱错误的。

我希望这可以帮助你!

+0

感谢Cory!在找不到更好的解决方案后,我也删除了“-XX:+ UseLargePages”选项。 – macbert 2013-08-06 15:42:54

相关问题