【TUNE_ORACLE】Oracle資料庫與HugePages(四)如何禁用透明大頁

Attack_on_Jager發表於2021-03-25

說明

相關文章連結:

Oracle資料庫與HugePages(一)HugePages概念和優勢: http://blog.itpub.net/69992972/viewspace-2763625/

Oracle資料庫與HugePages(二)HugePages配置和限制: http://blog.itpub.net/69992972/viewspace-2764357/

Oracle資料庫與HugePages(三)HugePages常見問題和解決辦法: http://blog.itpub.net/69992972/viewspace-2764597/

Oracle資料庫與HugePages(四)如何禁用透明大頁: http://blog.itpub.net/69992972/viewspace-2764784/


為什麼要禁用透明大頁(Transparent HugePages)

Oracle官方建議在開始安裝之前禁用透明大頁。

透明大頁記憶體不同於標準的HugePages記憶體,因為核心khugepaged執行緒在執行時動態分配記憶體。標準HugePages記憶體是在啟動時預分配的,在執行時不會改變。

注意:雖然在UEK2和以後的UEK核心上透明大頁是禁用的,但是在Linux系統上透明大頁可能是預設啟用的。


透明大頁記憶體預設支援Red Hat Enterprise Linux 6、Red Hat Enterprise Linux 7、SUSE 11、Oracle Linux 6和Oracle Linux 7,以及Oracle Linux早期版本的Unbreakable Enterprise Kernel 2 (UEK2)核心。

透明大頁會在執行時導致記憶體分配延遲。為了避免效能問題,Oracle建議在所有Oracle資料庫伺服器上禁用透明大頁,並使用標準HugePages來提高效能。



禁用方法

1)檢查透明HugePages是否啟用:

$  su -

#  cat /sys/kernel/mm/redhat_transparent_hugepage/enabled  ###RHEL檔案路徑

#  cat /sys/kernel/mm/transparent_hugepage/enabled  ###Oracle Linux檔案路徑

如果輸出顯示[always]表示已啟用,[never]表示已禁用:

[always] never  ###說明已啟用透明大頁


2)禁用透明HugePages

I. Linux 6及更早版本:

在/etc/grub.conf檔案中的kernel行最後面新增:transparent_hugepage=never,如:

kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root intel_iommu=on rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=VolGroup/lv_root rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet transparent_hugepage=never

注:有的是kernel+module的寫法,也只用放在“quiet”後面就行。

II. Linux 7及以上版本:

在/etc/defualt/grub.conf檔案中的GRUB_CMDLINE_LINUX行新增:transparent_hugepage=never,最後執行grub2-mkconfig


3)重啟OS並重新檢查


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69992972/viewspace-2764784/,如需轉載,請註明出處,否則將追究法律責任。

相關文章