HugePage在oracle中的應用
注意:HugePages和oracle AMM(自動記憶體管理)是互斥的,所有使用HugePages必須設定記憶體引數MEMORY_TARGET / MEMORY_MAX_TARGET 為0
配置HugePages的具體步驟
1、修改核心引數memlock,單位是KB,如果記憶體是512G,memlock的大小要稍微小於實體記憶體。計劃lock 400GB的記憶體大小。引數設定為大於SGA+100MB,單位KB
#vi /etc/security/limits.conf
oracle soft memlock 419430400 100GB*1024*1024
oracle hard memlock 419430400 100GB*1024*1024
儲存退出,引數就生效了
2、使用oracle帳號驗證大小
[ora11g@ ~]#su - oracle
[ora11g@ ~]$ ulimit -a|grep lock
core file size (blocks, -c) 0
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) 419430400
file locks (-x) unlimited
3、如果使用AMM記憶體管理,要取消改設定。MEMORY_TARGET和 MEMORY_MAX_TARGET引數設定為0
SQL> alter system reset memory_targets cope=spfile ;
SQL> alter system reset memory_max_target scope=spfile;
SQL> alter system set sga_target = 288G scope=spfile;
SQL> alter system set pga_aggregate_target = 96G scope = spfile;
4、計算需要使用的hugepag大小(常用方法)
驗證hugepage的大小
[root@ora11g ~]# grep Hugepagesize /proc/meminfo
Hugepagesize: 2048 kB
簡單的計算原理是total SGA_MAX_SIZE(多個instance的總和)/hugepagesize + N,N為少量記憶體盈餘,一般多出100就足夠了。如果主機記憶體512GB,計劃288GB用於SGA共享記憶體,
則大記憶體頁需288×1024/2=147456(288×1024×1024/2048=147456)
5、修改vm.nr_hugepages引數,值等於第四步計算的值
引數vm.nr_hugepages指明瞭記憶體頁數,如果設定大記憶體頁為512G,則vm.nr_hugepages的大小為288G×1024×1024/2048K=147456
vi /etc/sysctl.conf
vm.nr_hugepages = 147456
sysctl -p 命令使配置生效。
6、關閉資料庫,建議完整重啟主機和資料庫
7、驗證
方法一:
#grep HugePages /proc/meminfo
HugePages_Free小於HugePages_Total的值則表示設定成功。如果HugePages_Rsvd應該保持少量保留記憶體。
注意,HugePages如果配置不恰當會引起系統效能下降等風險,需要慎重。
小技巧:執行
#free -g,檢視used選項的大小是不是288GB,就可以了
參考資料MOS文件
HugePages on Linux: What It Is... and WhatIt Is Not... [ID 361323.1]
HugePages on Oracle Linux 64-bit [ID361468.1]
配置HugePages的具體步驟
1、修改核心引數memlock,單位是KB,如果記憶體是512G,memlock的大小要稍微小於實體記憶體。計劃lock 400GB的記憶體大小。引數設定為大於SGA+100MB,單位KB
#vi /etc/security/limits.conf
oracle soft memlock 419430400 100GB*1024*1024
oracle hard memlock 419430400 100GB*1024*1024
儲存退出,引數就生效了
2、使用oracle帳號驗證大小
[ora11g@ ~]#su - oracle
[ora11g@ ~]$ ulimit -a|grep lock
core file size (blocks, -c) 0
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) 419430400
file locks (-x) unlimited
3、如果使用AMM記憶體管理,要取消改設定。MEMORY_TARGET和 MEMORY_MAX_TARGET引數設定為0
SQL> alter system reset memory_targets cope=spfile ;
SQL> alter system reset memory_max_target scope=spfile;
SQL> alter system set sga_target = 288G scope=spfile;
SQL> alter system set pga_aggregate_target = 96G scope = spfile;
4、計算需要使用的hugepag大小(常用方法)
驗證hugepage的大小
[root@ora11g ~]# grep Hugepagesize /proc/meminfo
Hugepagesize: 2048 kB
簡單的計算原理是total SGA_MAX_SIZE(多個instance的總和)/hugepagesize + N,N為少量記憶體盈餘,一般多出100就足夠了。如果主機記憶體512GB,計劃288GB用於SGA共享記憶體,
則大記憶體頁需288×1024/2=147456(288×1024×1024/2048=147456)
5、修改vm.nr_hugepages引數,值等於第四步計算的值
引數vm.nr_hugepages指明瞭記憶體頁數,如果設定大記憶體頁為512G,則vm.nr_hugepages的大小為288G×1024×1024/2048K=147456
vi /etc/sysctl.conf
vm.nr_hugepages = 147456
sysctl -p 命令使配置生效。
6、關閉資料庫,建議完整重啟主機和資料庫
7、驗證
方法一:
#grep HugePages /proc/meminfo
HugePages_Free小於HugePages_Total的值則表示設定成功。如果HugePages_Rsvd應該保持少量保留記憶體。
注意,HugePages如果配置不恰當會引起系統效能下降等風險,需要慎重。
小技巧:執行
#free -g,檢視used選項的大小是不是288GB,就可以了
參考資料MOS文件
HugePages on Linux: What It Is... and WhatIt Is Not... [ID 361323.1]
HugePages on Oracle Linux 64-bit [ID361468.1]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27144762/viewspace-1290190/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- HugePage在mysql中的應用MySql
- 在CentOS Linux 5中為oracle配置hugepage的方法CentOSLinuxOracle
- 索引在ORACLE中的應用分析索引Oracle
- CBO,RBO在ORACLE中的應用Oracle
- ORACLE 陣列在過程中的應用Oracle陣列
- 【效能優化】CBO,RBO在ORACLE中的應用優化Oracle
- ORACLE與hugepage(二)Oracle
- ORACLE與hugepage(一)Oracle
- Linux的非同步IO(AIO)在Oracle中應用Linux非同步AIOracle
- 【HugePage】在Linux 64位系統下使用hugepageLinux
- Oracle PGA自動管理在OLAP系統中的應用Oracle
- Oracle在Linux下對記憶體大頁HugePage的實踐OracleLinux記憶體
- Refs 在React中的應用React
- MQTT 在 Elixir 中的應用MQQT
- HMM在NLP中的應用HMM
- SSD在SQLServer中的應用SQLServer
- sar 在unix中的應用
- 【效能優化】CBO,RBO在ORACLE 10g 中的應用優化Oracle 10g
- Oracle與SQL Server在企業應用中的比較(轉)OracleSQLServer
- Oracle在融合應用中內嵌商業智慧工具Oracle
- redis在nodejs中的應用RedisNodeJS
- redis在python中的應用RedisPython
- 堆在java中的應用--PriorityQueueJava
- Service Worker 在 PWA 中的應用
- 6、Zookeeper在kafka中的應用Kafka
- apr在tomcat中的應用Tomcat
- sqlserver在JAVA中的應用 (轉)SQLServerJava
- ext 庫在 OI 中的應用
- SQL語句在oracle資料庫中的初級應用(上)SQLOracle資料庫
- ORACLE 恢復中SCN的應用Oracle
- oracle中單引號的應用Oracle
- rem在響應式佈局中的應用REM
- 關於SAP中的Check and update optimizer statistics任務(Oracle CBO在SAP中的應用)Oracle
- Oracle Memory Management and HugePage (連載一)Oracle
- Oracle Memory Management and HugePage (連載二)Oracle
- Oracle Memory Management and HugePage (連載三)Oracle
- ORACLE hugepage好處與壞處Oracle
- AI在視訊遊戲中的應用AI遊戲