Kernel panic-java Contaminato errore a causa di UseLargePages


Mi sto imbattendo in uno strano problema di "Kernel Panic" durante il tentativo di utilizzare UseLargePages come uno dei parametri JVM. Nel momento in cui provo a eseguire qualsiasi comando java, il sistema operativo si blocca e sono costretto a ri-bbot.Sto usando CentOS 6.2 a 64 bit (Linux 2.6.32-220.23.1). Ecco cosa ho fatto per impostare le grandi pagine.

  • Aggiunte le seguenti voci in /etc/sysctl.conf

kernel.shmmax = 4294967296
vm.nr_hugepages = 2048
vm.hugetlb_shm_group = 502
  • La mia jvm è in esecuzione sotto utente root, quindi aggiunto root come parte di questo gruppo > > hugetlb
  • Aggiornato /etc/security/limits.conf per aggiungere il seguente

root            soft    memlock         4194304
root            hard    memlock         4194304
  • Riga di comando del kernel aggiornata per utilizzare hugepages non trasparenti transparent_hugepage = mai meminfo mostra
    
    cat /proc/meminfo | grep Huge
    AnonHugePages:         0 kB
    HugePages_Total:    2048
    HugePages_Free:     2048
    HugePages_Rsvd:        0
    HugePages_Surp:        0
    Hugepagesize:       2048 kB
    
    Infine, ho aggiunto il "- XX: + UseLargePages " come uno dei parametri di avvio JVM.Ora, nel momento in cui eseguo qualsiasi comando java, ad esempio "java-version", il sistema operativo si blocca, ho dovuto ricorrere a un riavvio. Ecco uno stacktrace dal registro del sistema operativo.

Kernel panico - non sincronizzazione: eccezione fatale Pid: 1790, comm: java Tainted: G D ---------------- 2.6.32-220.23.1.el6.centos.Plus.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!

Non sono sicuro di cosa stia causando questo problema. Non sono un esperto del sistema operativo, quindi non ho molti indizi per interpretare il registro. Tutto funziona se giro l'opzione UseLargePages commentando kernel.shmmax = 4294967296 . La memoria totale della macchina è di 15 GB. Sto usando- Xmx6144M-XX:MaxPermSize=128m come parametri di memoria JVM. Tratti qualcosa a che fare con CentOS 6.2 ?

Tutti i puntatori saranno apprezzati.

Author: Bhavik Ambani, 2014-03-11