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