内核恐慌 - 由于UseLargePages引起的java污染错误

时间:2014-03-11 03:37:38

标签: jvm kernel centos6 jvm-arguments

在尝试使用 UseLargePages 作为JVM参数之一时,我遇到了一个奇怪的“内核恐慌”问题。当我尝试执行任何java命令时,操作系统挂起,我被迫重新bbot。我使用的是64位CentOS 6.2(Linux 2.6.32-220.23.1)。以下是我为设置LargePages所做的工作。

  • /etc/sysctl.conf
  • 中添加了以下条目

kernel.shmmax = 4294967296
vm.nr_hugepages = 2048
vm.hugetlb_shm_group = 502
  • 我的jvm在root用户下运行,因此将root添加为该组的一部分 - >的 hugetlb
  • 更新 /etc/security/limits.conf 以添加以下内容

root            soft    memlock         4194304
root            hard    memlock         4194304
  • 更新内核命令行以使用非透明大页 transparent_hugepage = never meminfo显示
    
    cat /proc/meminfo | grep Huge
    AnonHugePages:         0 kB
    HugePages_Total:    2048
    HugePages_Free:     2048
    HugePages_Rsvd:        0
    HugePages_Surp:        0
    Hugepagesize:       2048 kB
    
    最后,我添加了“-XX:+ UseLargePages”作为JVM启动参数之一。现在,我运行任何java命令,例如, “java -version”,操作系统挂起,我不得不诉诸重新启动。这是操作系统日志中的堆栈跟踪。

内核恐慌 - 不同步:致命异常 Pid:1790,comm:java Tainted:GD ---------------- 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!

不确定导致此问题的原因。我不是操作系统专家,因此没有太多线索来解释日志。如果我通过注释 kernel.shmmax = 4294967296 来关闭UseLargePages选项,则一切正常。机器的总存储量为15gb。我正在使用 - Xmx6144M -XX:MaxPermSize = 128m 作为JVM内存参数。是否与CentOS 6.2有关?

任何指针都将受到赞赏。

0 个答案:

没有答案