在CentOS Linux 5中為oracle配置hugepage的方法

cnhtm發表於2010-01-25

在Linux中配置hugepage可以提高oracle的效能,減少oracle sga的頁交換,類似於aix中的lagepage。
下面演示配置hugepage的方法。

系統環境:

OS:CentOS5 x86
Oracle:10.2.0.1

配置過程

[@more@]

檢查hugepagesize

ora_test@root[/root]> grep Hugepagesize /proc/meminfo
Hugepagesize: 4096 kB

配置分配hugepage的數量

nr_hugepages的計算公式:nr_hugepages>=sga(mb)/Hugepagesize(mb)

ora_test@root[/root]> echo 50 > /proc/sys/vm/nr_hugepages
ora_test@root[/root]> sysctl -w vm.nr_hugepages=50
vm.nr_hugepages = 50
ora_test@root[/root]> echo "vm.nr_hugepages=50" >> /etc/sysctl.conf

檢查hugepage的分配情況

ora_test@root[/root]> grep HugePages_Total /proc/meminfo
HugePages_Total: 6

這裡顯示的值為6,小於我配置的數量50,所以需要重啟

ora_test@root[/root]> reboot

Broadcast message from root (pts/1) (Mon Jan 25 09:38:04 2010):

The system is going down for reboot NOW!

重啟之後,檢查hugepage的分配情況

ora_test@root[/root]> grep HugePages_Total /proc/meminfo
HugePages_Total: 50

現在確認hugepage已經分配了50個單位(50×4096kb=200mb)

配置oracle使用者的memlock

需要修改/etc/security/limits.conf檔案,加入標記為紅色的兩行
計算公式為:>=HugePages_Total×1024,我這裡設定了2倍的值,即:2×50×1024=102400

ora_test@root[/root]> cat /etc/security/limits.conf|grep lock
# - memlock - max locked-in-memory address space (KB)
# - locks - max number of file locks the user can hold
oracle soft memlock 102400
oracle hard memlock 102400

檢查memlock情況

切換到oracle使用者身份,使用ulimit -l命令檢查memlock情況

ora_test@root[/root]> su - oracle
ora_test@oracle[/home/oracle]> ulimit -l
102400

啟動資料庫

ora_test@oracle[/home/oracle]> sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Jan 25 09:50:33 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Connected to an idle instance.

idle> startup
ORACLE instance started.

Total System Global Area 167772160 bytes
Fixed Size 1218292 bytes
Variable Size 67111180 bytes
Database Buffers 92274688 bytes
Redo Buffers 7168000 bytes
Database mounted.
Database opened.
idle> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

檢查是否已經使用了hugepage

ora_test@oracle[/home/oracle]> grep HugePages_Free /proc/meminfo
HugePages_Free: 30

這裡顯示剩餘的hugepage為30,小於HugePages_Total(50),證明oracle已經使用了hugepage

--end--

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

相關文章