J'essaie d'allouer ram avec xms = xmx sur un sles10 x64 fonctionnant sous VMware.JVM ne parvient pas à allouer XMS sous Suse SLES10 X64 s'exécutant sur VMWare ESX
Lors de l'arrêt de la machine virtuelle Java l'erreur suivante est générée:
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.
La VM voit 8 Go et il peut être attribué lors de l'exécution par le réglage XMX.
Sur un autre SLES10 virtuel avec 16 Go de RAM Réservé via VMWare Je n'ai pas de problème avec l'allocation de RAM même lors du réglage des hugepages et shmax seulement par écho ça marche bien.
echo 8000>/proc/sys/vm/nr_hugepages
écho 8589934592>/proc/sys/kernel/shmmax
En utilisant les commandes d'écho sur l'autre SLES10 montrent aucun effet dans/proc/meminfo du tout.
voici mes configs 1er sur est le SLES10 où XMS ne parvient pas à allouer.
# 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
Sur la seconde machine virtuelle, il ressemble à ceci
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
Dans la première machine que vous essayez d'allouer total 3g + 256M = 3.25gig, mais dans la seconde vous allouez 2g + 256m = 2.25m.So mieux tester les deux machines avec la même taille de tas.Mais de toute façon 2.25 ou 3.25, les deux devraient travailler avec 64bit JDK.Pouvez-vous me faire savoir la version JDK utilisez-vous. –
Pendant ce temps, j'ai fait quelques tests et finalement pourrait allouer 2900m mais pas 3gb Après avoir réglé les hugepages à 3200. Sur l'autre hôte j'ai réduit les énormespages à 3200 de 8000 et maintenant seulement pourrait allouer 2900m. Restaurer les pages à 8000 je peux maintenant allouer 4gb à nouveau. Je vais vérifier plus tard la version et essayez à nouveau avec la ligne de commande plus courte – macbert
de java.runtime.name \t Java (TM) 2 Runtime Environment, Standard Edition java.runtime.version \t 1.5.0_22-b03 java.specification.name \t Java API Platform Spécification java.specification.vendor \t Sun Microsystems Inc. java.specification.version \t 1.5 – macbert