Panique du noyau-erreur entachée de java due à UseLargePages
Je rencontre un problème étrange de "Panique du noyau" en essayant d'utiliser UseLargePages comme l'un des paramètres de la JVM. Au moment où j'essaie d'exécuter une commande java, le système d'exploitation se bloque et je suis obligé de re-bbot.J'utilise 64 bits CentOS 6.2 (Linux 2.6.32-220.23.1). Voici ce que j'ai fait pour mettre en place les LargePages.
- Ajouté les entrées suivantes dans /etc/sysctl.conf
kernel.shmmax = 4294967296
vm.nr_hugepages = 2048
vm.hugetlb_shm_group = 502
- Ma jvm s'exécute sous l'utilisateur root, donc ajouté root dans le cadre de ce groupe > > hugetlb
- mise à Jour /etc/security/limits.conf {[6] } pour ajouter ce qui suit
root soft memlock 4194304
root hard memlock 4194304
- Mise à jour de la ligne de commande du noyau pour utiliser des hugepages non transparents transparent_hugepage=never
meminfo montre
Enfin, j'ai ajouté le" - XX:+UseLargePages " comme l'un des paramètres de démarrage de la JVM.Maintenant, au moment où j'exécute une commande java, par exemple "java-version", le système d'exploitation se bloque, j'ai dû recourir à un re-boot. Voici un stacktrace du journal du système d'exploitation.cat /proc/meminfo | grep Huge AnonHugePages: 0 kB HugePages_Total: 2048 HugePages_Free: 2048 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB
Noyau panique - pas de synchronisation: Exception fatale Pid: 1790, comm: java Contaminé: G D ---------------- 2.6.32-220.23.1.el6.centos.majoré.x86_64 #1
Kernel panic - not syncing: Fatal exception
Pid: 1790, comm: java Tainted: G D ---------------- 2.6.32-220.23.1.el6.centos.plus.x86_64 #1
Call Trace:
[] ? panic+0x78/0x143
[] ? xen_restore_fl_direct_end+0x0/0x1
[] ? _spin_unlock_irqrestore+0x1c/0x20
[] ? oops_end+0xe4/0x100
[] ? no_context+0xfb/0x260
[] ? __alloc_pages_nodemask+0x111/0x940
[] ? __bad_area_nosemaphore+0x125/0x1e0
[] ? __raw_callee_save_xen_pmd_val+0x11/0x1e
[] ? bad_area_nosemaphore+0x13/0x20
[] ? __do_page_fault+0x31d/0x480
[] ? __lru_cache_add+0x40/0x90
[] ? xen_set_pte_at+0xaf/0x170
[] ? page_add_new_anon_rmap+0x9d/0xf0
[] ? handle_pte_fault+0x487/0xb50
[] ? do_page_fault+0x3e/0xa0
[] ? page_fault+0x25/0x30
[] ? __unmap_hugepage_range+0x1f2/0x300
[] ? __unmap_hugepage_range+0xdf/0x300
[] ? unmap_hugepage_range+0x54/0x90
[] ? unmap_vmas+0xae7/0xc00
[] ? release_pages+0x21c/0x250
[] ? check_events+0x12/0x20
[] ? xen_force_evtchn_callback+0xd/0x10
[] ? check_events+0x12/0x20
[] ? unmap_region+0x91/0x130
[] ? do_munmap+0x2b6/0x3a0
[] ? sys_munmap+0x56/0x80
[] ? system_call_fastpath+0x16/0x1b
Xen Minimal OS!
Je ne sais pas ce qui cause ce problème. Je ne suis pas un expert du système d'exploitation,donc je n'ai pas beaucoup d'indices pour interpréter le journal. Tout fonctionne si je tourne l'option UseLargePages en commentant kernel.shmmax = 4294967296 . La mémoire totale de la machine est de 15 Go. J'utilise - Xmx6144M-XX:MaxPermSize=128m comme paramètres de mémoire JVM. Est-il quelque chose à voir avec CentOS 6.2 ?
Tous les pointeurs seront appréciés.