1. 程式人生 > 實用技巧 >Linux記憶體大頁設定

Linux記憶體大頁設定

實際環境中,遇到3次由於記憶體大頁設定引數不合理或者錯誤,導致系統記憶體不足,或者資料庫記憶體不足的問題。

按照如下方式,推薦設定大頁參考下發設定!

參考
HugePages on Oracle Linux 64-bit (Doc ID 361468.1)
1.建議配置Linux 記憶體大頁=Oracle SGA大小+1G 或者 1~2個頁塊 4Mbytes

2.SGA大小建議參考如下
8G實體記憶體: SGA=3G PGA=1G
16G實體記憶體: SGA=6G PGA=2G
32G實體記憶體: SGA=16G PGA=4G
64G實體記憶體: SGA=32G PGA=8G
128G實體記憶體:SGA=72G PGA=24G

256G實體記憶體:SGA=120G PGA=40G
512G實體記憶體: SGA=240G PGA=80G

3.Linux使用者使用大頁的限制,無限制!
#vi /etc/security/limits.conf
* soft memlock unlimited
* hard memlock unlimited
4.配置大頁,共享記憶體引數設定
#vi /etc/sysctl.conf
###kernel.shmmax = 536870912 (以位元組為單位,實體記憶體數量(MB為單位)*0.75*1024*1024,為記憶體的0.75倍)
###kernel.shmall = 2097152 (根據shmmax來計算次值/4096) getconf PAGE_SIZE

#vm.nr_hugepages 大頁設定=大頁記憶體(m)/2(Hugepagesize)
#大頁設定多大的值,這個要根據系統SGA的配置來定,一般建議大頁的總佔用量大於系統上所有SGA總和+1GB【ASM例項如果沒有關閉AMM也無法使用大頁】

5.關閉透明大頁【適用於redhat6.9]
#重啟後檢視是否關閉:always madvise [never] 括號括到never為關閉
cp /etc/grub.conf /etc/grub.conf_20190625.bak
vim /etc/grub.conf
transparent_hugepage=never
重啟主機
#檢視是否關閉:
grep Huge /proc/meminfo