溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Redhat中HugePage的示例分析

發(fā)布時間:2021-12-16 10:09:07 來源:億速云 閱讀:255 作者:小新 欄目:建站服務器

這篇文章主要為大家展示了“Redhat中HugePage的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Redhat中HugePage的示例分析”這篇文章吧。

一、HugePage 介紹

在操作系統(tǒng)Linux環(huán)境中,內(nèi)存是以頁Page的方式進行分配,默認大小為4K。如果需要比較大的內(nèi)存空間,則需要進行頻繁的頁分配和管理尋址動作。

HugePage是傳統(tǒng)4K Page的替代方案。顧名思義,是用HugePage可以讓我們有更大的內(nèi)存分頁大小。無論是HugePage還是傳統(tǒng)的正常Page,這個過程都涉及到OS內(nèi)存尋址過程。

當一個進程訪問內(nèi)存的時候,并不是直接進行內(nèi)存位置訪問,是需要通過Page Table進行轉移變換。在使用HugePage的情況下,PageTable具有了額外的屬性,就是判斷該頁記錄是HugePage還是Regular Page。

二、信息查看

  • 系統(tǒng)

    uname -r

  • 查看共享段

    ipcs -m

  • 查看大頁信息

    grep Huge /proc/meminfo

三、配制大頁

  1. 確定內(nèi)存大小
    free -g

  2. 計算HugePages_Total:腳本見401749.1
    執(zhí)行腳本,注意這個過程中要求Oracle所有實例,包括數(shù)據(jù)庫和ASM都啟動、AMM關閉,以及SGA大小超過100M。

  3. 修改/etc/security/limits.conf參數(shù)文件,添加數(shù)據(jù)庫實例用戶的memlock限制。
    這個過程中使用memlock標記,用于設置每個用戶允許的最大內(nèi)存使用情況。這個取值可以設置為數(shù)據(jù)庫服務器物理內(nèi)存大小。
    注意:可用內(nèi)存>value(鎖定內(nèi)存)>=HugePages_Total*Hugepagesize
    HugePagesize:
    Redhat中HugePage的示例分析

    vi /etc/security/limits.conf

    # 添加  
    oracle soft memlock value  
    oracle hard memlock value
  4. 驗證limit
    ulimit -l

  5. 更改參數(shù)/etc/sysctl.conf
    vm.nr_hugepages = HugePages_Total值(見第2步)

  6. 重啟系統(tǒng)及數(shù)據(jù)庫

  7. 驗證
    grep Huge /proc/meminfo

四、關閉大頁

  1. 方法一:優(yōu)先方法是修改/boot/grub/grub.conf文件,在kernel行的后面加上"transparent_hugepage=never":

    title Red Hat Enterprise Linux (2.6.32-358.el6.x86_64)  
            root (hd0,0)  
            kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/mapper/vg_xty64-lv_root rd_NO_LUKS.UTF-8 rd_LVM_LV=vg_xty64/lv_root rd_NO_MD quiet SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto rd_NO_DM  KEYBOARDTYPE=pc KEYTABLE=us rd_LVM_LV=vg_xty64/lv_swap  transparent_hugepage=never  
            initrd /initramfs-2.6.32-358.el6.x86_64.img
  2. 在/etc/rc.local中加入下面的代碼行:

    if test -f /sys/kernel/mm/transparent_hugepage/enabled; then  
       echo never > /sys/kernel/mm/transparent_hugepage/enabled  
    fi  
    if test -f /sys/kernel/mm/transparent_hugepage/defrag; then  
       echo never > /sys/kernel/mm/transparent_hugepage/defrag  
    fi
  3. 重啟后校驗:

    cat /sys/kernel/mm/transparent_hugepage/defrag
    always [never]
    cat /sys/kernel/mm/transparent_hugepage/enabled 
    always [never]
  4. 如果結果非預期,可能是由于Linux的ktune和tuned服務所導致。在此種情況下,建議關閉這兩項服務:

    service tuned stop
    chkconfig tuned off
    service ktune stop
    chkconfig ktune off或者:
    tuned-adm off

五、和 Oracle 的關系

  • AMM簡介:SGA 在 Linux中是通過系統(tǒng)共享內(nèi)存實現(xiàn),而PGA是通過進程私有空間實現(xiàn)。AMM實際上最大的功能是將SGA和PGA空間調(diào)節(jié)的通道打通,這必然帶來對原有SGA共享內(nèi)存方式架構的影響。在AMM時,ipcs –m顯示的虛擬空共享段就是實際效果的一部分。

  • AMM & HugePage

    AMM是不支持HugePage的,如果強在AMM+HugePage模式下打開數(shù)據(jù)庫,是會遇到失敗信息。所有使用HugePages必須設置內(nèi)存參數(shù)MEMORY_TARGET / MEMORY_MAX_TARGET 為 0

    如果使用了大內(nèi)存和SGA,那么HugePage對提高數(shù)據(jù)庫性能就非常重要。如果數(shù)據(jù)庫SGA腳本,比如超過8G(個人經(jīng)驗:建議SGA>32GB),就需要配置HugePages。配置HugePages 有如下好處:

    • 大頁和普通頁:傳統(tǒng)頁大小是4K而hugeLTB大小 2048k。這意味著系統(tǒng)需要處理512倍傳統(tǒng)頁面。

    • 減少PageTable檢索負載:更小的PageTable意味著更快的檢索定位能力;

    • 內(nèi)存性能提升:Page數(shù)量減少、大小的增加,減少了管理過程的復雜性,進一步減少了瓶頸出現(xiàn)的概率;

    • 非Swap內(nèi)存:當開啟HugePage的時候,HugePage是不會Swap的;

    • 減少Page Table空間負載:在PageTable管理中,每條Page記錄是要占據(jù)64byte的空間的。也就是說,如果一塊50G的RAM,4k大小的PageTable要有80MB左右;


以上是“Redhat中HugePage的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI