大頁(huge pages) 系列四,hugepages系列
從RedHat 6, OEL 6, SLES 11 and UEK2 kernels 開始,系統預設會啟用 Transparent HugePages :用來提高記憶體管理
的效能透明大頁(Transparent HugePages )和之前版本中的大頁功能上類似,主要的區別是:Transparent HugePages 可以即時配置,
不需要重啟才會生效配置;
透明大頁(Transparent HugePages )主要是利用khugepaged thread,而以前的 大頁是通過在系統啟動時來預分配實現;
但是,oracle 官方不建議我們使用RedHat 6, OEL 6, SLES 11 and UEK2 kernels 後的 透明大頁(Transparent HugePages ),
因為透明大頁(Transparent HugePages ) 存在一些問題:
1.在RAC環境下 透明大頁(Transparent HugePages )會導致異常節點重啟,和效能問題;
2.在單機環境中,透明大頁(Transparent HugePages ) 也會導致一些異常的效能問題;
----以紅帽6.0 為例:
方法一:
預設啟用:[always] --- 表明啟用了透明大頁
[root@rhel-6 redhat_transparent_hugepage]# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
[always] madvise never
禁用狀態:
[root@rhel-6 redhat_transparent_hugepage]# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
always madvise [never]
方法二:
[root@rhel-6 redhat_transparent_hugepage]# grep AnonHugePages /proc/meminfo
AnonHugePages: 143360 kB
如果 AnonHugePages > 0 同樣表示啟用了透明大頁;
----如何禁用透明大頁:
方法一(優先選擇):
在 /etc/grub.conf 中添加一行記錄:
transparent_hugepage=never
然後重啟
方法二:
配置/etc/rc.local 然後重啟伺服器:
if test -f /sys/kernel/mm/redhat_transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/redhat_transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
fi