關(guān)于CentOS 6下Hadoop占用系統(tǒng)態(tài)CPU高的處理辦法
一次不經(jīng)意發(fā)現(xiàn)Hadoop的系統(tǒng)態(tài)CPU使用率很高,然后百度一下居然是個(gè)已知問(wèn)題。
RHEL6優(yōu)化了內(nèi)存申請(qǐng)的效率,而且在某些場(chǎng)景下對(duì)KVM的性能有明顯提升:http://www.linux-kvm.org/wiki/images/9/9e/2010-forum-thp.pdf。
而Hadoop是個(gè)高密集型內(nèi)存運(yùn)算系統(tǒng),這個(gè)改動(dòng)似乎給它帶來(lái)了副作用。理論上運(yùn)算型Java程序應(yīng)該更多的使用用戶(hù)態(tài)CPU才對(duì),Cloudera官方也推薦關(guān)閉THP。于是參考一些文章作了調(diào)整:
- # for hadoop , disable thp
- echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
- echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
作用非常明顯:
效果很明顯,大概12:05分的時(shí)候操作的,系統(tǒng)態(tài)占用基本消失了。文件Cache使用上升、機(jī)器負(fù)載下降。
除了手動(dòng)修改運(yùn)行時(shí)參數(shù)之外,還可以修改 /etc/grub.conf 里內(nèi)核的啟動(dòng)參數(shù),追加“transparent_hugepage=never”(此選項(xiàng)只對(duì) /sys/kernel/mm/redhat_transparent_hugepage/enabled 有效)。
原本 transparent_hugepage 功能是在內(nèi)核2.6.38之后才引入的,紅帽在RHEL6就將此功能合并進(jìn)來(lái)、詳細(xì)還有待進(jìn)一步了解。
via : http://hi.baidu.com/higkoo/item/eb5e69c17c6b300a0ad93a00