linux下的記憶體共享引數

pingley發表於2012-03-12
linux下的記憶體共享引數
在安裝oracle 資料庫軟體前你需要檢查linux 系統的記憶體共享引數。
[root@zeng ~]# ls -1 /proc/sys/kernel/shm*
/proc/sys/kernel/shmall
/proc/sys/kernel/shmmax
/proc/sys/kernel/shmmni
shmmax:最大共享段大小bytes。
shmall:系統中總的可用的共享記憶體,按照bytes或者pages計算。
shmmni:系統中共享記憶體段的最大數量。
另外還有:
shmseg:一個程式可以擁有的共享段的最大數量。
shmmin:最小共享段大小bytes。
檢視當前系統中分配的記憶體共享段。
root@zeng ~]# ipcs -m
------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      
0x5ff1e964 229376     oracle     660        4096       0                
oracle 11gR2 在 oracle linux 6.0 安裝對記憶體共享引數的要求:
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
注:參照的是Oracle Linux 5 Update 2 的安裝要求。因為oracle 11gR2 沒有針對oracle linux 6.0
的安裝文件。
參看要修改的共享記憶體引數:
[root@zeng ~]# cat /proc/sys/kernel/shmmax         
536870912
[root@zeng ~]# cat /proc/sys/kernel/shmall
2097152
[root@zeng ~]# cat /proc/sys/kernel/shmmni
4096
和oracle 11gR2對系統記憶體共享的的引數要求一樣,因為我已經安裝了oracle11gR2.
可以使用echo、cat、sysctl -w、編輯/etc/sysctl.conf 的方式來改變記憶體共享引數。寫進
/etc/sysctl.conf 的核心引數應該執行sysctl -p 把剛才的修改例項化為當前的核心引數。
寫進/etc/sysctl.conf 的核心引數下次重啟以後依然有效。
另外在修改shmmax 引數前,請先確定系統的實體記憶體大小。
[root@zeng ~]# cat /proc/meminfo|grep -i memtotal
MemTotal:         911564 kB
shmmax 的記憶體大小超過實體記憶體的大小是沒有意義的,因為不可能分配的到那麼多共享記憶體。
shmmax 不能太小,該值應該大於例項SGA的大小,如果該值設定的比較小會影響到資料庫的
效能甚至是不能啟動oracle 

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

相關文章