如何在redhat5為oracle啟用及配置hugepage大頁記憶體

wisdomone1發表於2013-05-10

http://www.itpub.net/thread-1476073-1-1.html

 

測試筆記如下:

1,[root@rhel5 ~]# more /proc/meminfo|grep  Huge
HugePages_Total:   300 --大頁記憶體頁數
HugePages_Free:    300  --大頁記憶體空閒頁數
HugePages_Rsvd:      0
Hugepagesize:     2048 kB --大頁記憶體大小,配置為2mb

 

2,如上述引數HugePages_Total未啟用,執行如下指令碼

echo 'vm.nr_hugepages=300'>>/etc/sysctl.conf

注:vm.nr_hugepages計算公式為:

nr_hugepages>=sga(mb)/Hugepagesize(mb)=600/2=300

[root@rhel5 ~]# more /etc/sysctl.conf|grep vm
vm.nr_hugepages=300

--令配置檔案生效

sysctl -p

3,配置memlock相關檔案鎖

more /etc/security/limits.conf |grep oracle
oracle           soft    memlock        614400
oracle           hard    memlock        614400

上述計算公式為:

HugePages_Total×1024,這裡設定了2倍的值,即:2×50×1024=102400

=2*300*1024=614400

 

4,切換到oracle檢視上述配置是否生效

su - oracle

ulimit -l --結果為614400

 

5,啟動oracle

startup

6,檢視如下Hugepages_Free是否變化,對比是否使用了大頁

[root@rhel5 ~]# more /proc/meminfo|grep Huge
HugePages_Total: 300 --大頁記憶體頁數
HugePages_Free: 300 --大頁記憶體空閒頁數
HugePages_Rsvd: 0
Hugepagesize: 2048 kB --大頁記憶體大小,配置為2mb

 

-----------------------------------------------------

1,大記憶體頁作用

        a,減少頁表條目記錄時,提升效能

        b,預設頁數為4k,如果實體記憶體很大,形成的pagetables頁表條目相當大;

           而這些條目資訊儲存在cpu一個對映表中,肯定會導致佔用cpu時間過高,從而影響效能

           所以啟用大頁後,條目減少進而提升效能

         c,這些對映表儲存實體記憶體地址和虛擬記憶體地址轉換關係;因為最終要透過實體記憶體訪問

        d,大頁記憶體使用的記憶體會一直keep,所以一定要合理配置,不致於浪費記憶體

 

------------------------------------------------

為了讓oracle11g or oracle10g使用hugapage,執行如下

在啟用了Hugepage的情況下,32位的ORACLE可以把SGA擴充套件到62G。

[ORACLE 11G]

必須關閉AMM(自動記憶體管理)特性才能使用hugepage
設定如下初始化引數:
ALTER SYSTEM SET sga_max_size=6720M SCOPE=SPFILE;
ALTER SYSTEM SET sga_target=0 SCOPE=SPFILE;
ALTER SYSTEM SET PGA_AGGREGATE_TARGET=2048 SCOPE=SPFILE;
ALTER SYSTEM SET memory_target=0 SCOPE=SPFILE;--關閉maa功能
ALTER SYSTEM SET memory_max_target=0 SCOPE=SPFILE;
其他配置同10G

[ORACLE10G]


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

相關文章