linux kernel.shmall shemax shemin 參數解釋

 

分類: oracle linux 6193人閱讀 評論(0) 收藏 舉報

Linux X86-64操做系統,Oracle 10g數據庫,由8G加到16G,把kernel.shmmax參數改到17179869184(16G)後,發現只要修改sga_max_size和 sga_target參數到超過8G,Oracle就會報內存不夠沒法啓動,檢查另外兩個共享內存參數相關參數:kernel.shmall和 kernel.shmmni,kernel.shmall參數是控制共享內存頁數,kernel.shmmni參數是控制共享內存段總數,目前的參數值是 4096,足夠大了,那麼問題應該是出在kernel.shmall上,用8589934592(8G)除以當前的參數值2097152,結果是 4096,說明頁大小是4K,如今要把SGA調到大於8G,就要調大kernel.shmall參數,調整到當前值的2倍(4194304)後,就能夠成 功地將sga設置到13G了。linux

 

對於32位系統,一頁=4k,也就是4096字節。


kernel.shmall = 2097152  就是 2097152*4k/1024/1024 = 8G 就是說可用共享內存一共 8G

上面shmmax = 2G數據庫

 

512 32000 100 100 >/proc/sys/kernel/sem 分別是指什麼

SEMMSL(每一個用戶擁有信號量最大數量),SEMMNS(系統信號量最大數量),SEMOPM(每次semop系統調用操做數),SEMMNI(系統信號量集最大數量)

 

 

REDHAT AS4 kernel.sem設置參考服務器

 

 


在安裝oracle 以前一般須要設置kernel.sem這個參數,下面對些做簡單介紹
sem實際上是semaphores的縮寫,查看當前設置
[oracle@ebsse oracle]$ cat /proc/sys/kernel/sem
250 32000 100 128
4個數據分別對應
SEMMSL SEMMNS SEMOPM SEMMNI
如當oracle DB初始化參數文件中PROCESSES參數設置較大時,須要調整SEMAPHORES設置
SEMMSL應該設置爲服務器中各個實例中最大的PROCESSES參數+10,例如,當最大的PROCESSES參數爲5000時,SEMMSL應設置爲5010。
SEMMNS參數應設置爲SEMMSL*SEMMNI,接上例SEMMSL爲5010,SEMMNS參數應爲(5010*128)=641280。
SEMOPM參數應設置與SEMMSL參數相同,接上例此處應設置爲5010
更改當前SEMAPHORES參數設置:
[oracle@ebsse oracle]$ su
Password:
[root@ebsse oracle]# echo "5010 641280 5010 128" > /proc/sys/kernel/sem
[root@ebsse oracle]# cat /proc/sys/kernel/sem
5010 641280 5010 128
如需啓動時自動應用,可在/etc/sysctl.conf增長:
kernel.sem =5010 641280 5010 128oracle

相關文章
相關標籤/搜索