我们注意到垃圾收集期间存在大量JVM暂停,其中用户和系统时间远小于总时间。 [时间:用户= 3.99 sys = 0.55,真实= 34.29秒]我们怀疑这可能是由于内存管理和检查透明和大页面配置显示两者都被禁用:
/sys/kernel/mm/redhat_transparent_hugepage/enabled:always [never]
/sys/kernel/mm/redhat_transparent_hugepage/defrag:[always] never
/sys/kernel/mm/redhat_transparent_hugepage/khugepaged/defrag:[yes] no
然而,看看THP和相关的计数器,我们看到很多压缩档: egrep'trans | thp | compact_'/ proc / vmstat
nr_anon_transparent_hugepages 0
compact_blocks_moved 113682
compact_pages_moved 3535156
compact_pagemigrate_failed 0
compact_stall 1944
compact_fail 186
compact_success 1758
thp_fault_alloc 6
thp_fault_fallback 0
thp_collapse_alloc 15
thp_collapse_alloc_failed 0
thp_split 17
所以问题是,如果THP被禁用,为什么THP和压缩停顿/失败计数器不为0以及如何禁用压缩因此它不会干扰我们的JVM(我们认为这是长时间GC暂停的原因) 这发生在RHEL6.2,2.6.32-279.5.2.el6.x86_64,JVM 6u21 32位上。谢谢!