Linux 6 Transparent Huge Pages and Hadoop Workloads

时间 : 15-03-02 栏目 : linux运维 作者 : 老薛 评论 : 0 点击 : 3,278 次

近期,进行Hadoop运维的时候,发现内核态占用CPU很高,起初以为是程序出了问题,因为程序是根据内部需求改造过的,后来google以后,找到了真正的原因,原文地址:http://structureddata.org/2012/06/18/linux-6-transparent-huge-pages-and-hadoop-workloads/

RHEL6优化了内存申请的效率,而且在某些场景下对KVM的性能有明显提升:http://www.linux-kvm.org/wiki/images/9/9e/2010-forum-thp.pdf。

而Hadoop是个高密集型内存运算系统,这个改动似乎给它带来了副作用。理论上运算型Java程序应该更多的使用用户态CPU才对,Cloudera官方也推荐关闭THP。于是参考一些文章作了调整:

1
2
3
# for hadoop , disable thp
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag

作用非常明显:

Hadoop占用系统态CPU高效果很明显,大概12:05分的时候操作的,系统态占用基本消失了。文件Cache使用上升、机器负载下降。

除了手动修改运行时参数之外,还可以修改 /etc/grub.conf 里内核的启动参数,追加“transparent_hugepage=never”(此选项只对 /sys/kernel/mm/redhat_transparent_hugepage/enabled 有效)。

原本 transparent_hugepage 功能是在内核2.6.38之后才引入的,红帽在RHEL6就将此功能合并进来、详细还有待进一步了解。

随着系统版本的更新,应用和系统的配合越发显得重要了,好的应用必须要和操作系统紧密贴合,这样才能发挥硬件的最大特性。

相关文章 性能优化

 

 

本文标签 , ,

除非注明,文章均为( 老薛 )原创,转载请保留链接: http://www.bdkyr.com/xtyw002/665.html

随便看看

0