oracle 大頁配置詳細介紹

wanglinghua0907發表於2024-01-22

大頁的作用:

防止oracle使用的記憶體交換,所以設定的大小與oracle配置的sga、pga相關。

只有assm(Automatic Shared Memory Management)模式可以使用大頁,需要關閉amm(Memory Manager Process)

 

調整資料庫sga/pga大小:

alter system set sga_max_size=<n>G scope=spfile sid='*';

alter system set sga_target=<n>G scope=spfile sid='*';

Alter system set pga_aggregate_target=xxxx scope=spfile sid='*';

 

關閉AMM管理:

先設0

alter system set memory_target=0 scope=spfile sid='*';

alter system set memory_max_target=0 scope=spfile sid='*';

再置空引數

alter system reset memory_target scope=spfile sid='*';

alter system reset memory_max_target scope=spfile sid='*';

 

重啟資料庫生效:

SQL> SHUTDOWN IMMEDIATE;

SQL> STARTUP;

 

必須assm管理才可以配置大頁

 

1. 檢視大頁使用情況

# grep Huge /proc/meminfo

HugePages_Total: 306   (總共306頁)

HugePages_Free: 306     (空閒306頁,已使用306-306=0頁)

HugePages_Rsvd: 0       (作業系統承諾給oracle預留的頁數)

HugePages_Surp: 0

Hugepagesize: 2048 kB   (每頁2M,固定值)

大頁總大小=HugePages_Total*Hugepagesize

 

2. 指令碼計算大頁數量

LINUX6語句

執行MOS 401749.1提供的hugepages_settings.sh


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

/etc/sysctl.conf

vm.nr_hugepages

 

調整過sga後需要重新計算,如果新加了一個例項也要重新計算

例子:

vi /etc/sysctl.conf

vm.nr_hugepages=1496

 

執行sysctl -p 命令使以上設定生效

 

LINUX7語句

metalink( 文件 ID 401749.1)


3. 設定記憶體鎖

memlock 值應該為:大頁數適當增加一些* Hugepagesize。

查詢Hugepagesize值:grep Huge /proc/meminfo |grep Hugepagesize

(1496+5)* 2048= 3074048

 

# vi /etc/security/limits.conf

oracle soft memlock 3074048

oracle hard memlock 3074048

 

數量大於指令碼算出的值一些,比如算出 700寫800

vi /etc/security/limits.conf

 

oracle   soft   memlock    xxx

oracle   hard   memlock   xxx

4. 重啟庫,再次檢視

SQL> shutdown immediate

SQL> startup

 

最好是重啟伺服器!

 

5. 再次檢視

grep Huge /proc/meminfo

 

 



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

相關文章