【发布时间】:2013-05-19 03:58:38
【问题描述】:
我们注意到垃圾回收期间 JVM 的大量暂停,其中用户和系统时间远小于总时间。 [Times: user=3.99 sys=0.55, real=34.29 secs] 我们怀疑这可能是由于内存管理和检查显示两者都被禁用的透明和大页面配置:
/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 位上。谢谢!
【问题讨论】:
-
这“/sys/kernel/mm/redhat_transparent_hugepage/defrag:[always] never”不是表示它已启用了吗? “总是[从不]”不是意味着禁用吗?
-
我想我在 Centos 上遇到过类似的问题,关闭透明大页面是否有效?
标签: memory-management garbage-collection rhel6