您好,登錄后才能下訂單哦!
SHMMAX = 配置了最大的內存segment的大小 ——> 這個設置的比SGA_MAX_SIZE大比較好。
SHMMAX參數:Linux進程可以分配的單獨共享內存段的最大值。一般設置為內存總大小的一半。這個值的設置應該大于SGA_MAX_TARGET或MEMORY_MAX_TARGET的值,因此對于安裝Oracle數據庫的系統,shmmax的值應該比內存的二分之一大一些。
SHMMIN= 最小的內存segment的大小 。
SHMMNI= 整個系統的內存segment的總個數 。設置系統級最大共享內存段數量。Oracle10g推薦最小值為4096,可以適當比4096增加一些。
SHMSEG= 每個進程可以使用的內存segment的最大個數
shmall =是全部允許使用的共享內存大小,shmmax 是單個段允許使用的大小。這兩個可以設置為內存的 90%。例如 16G 內存,16*1024*1024*1024*90% = 15461882265,shmall 的大小為 15461882265/4k(getconf PAGESIZE可得到) = 3774873。
shmall設置共享內存總頁數。這個值太小有可能導致數據庫啟動報錯。很多人調整系統內核參數的時候只關注SHMMAX參數,而忽略了SHMALL參數的設置。
-
信號燈semaphores是進程或線程間訪問共享內存時提供同步的計數器。
SEMMSL= 設置每個信號燈組中信號燈最大數量, 推薦的最小值是250 。對于系統中存在大量并發連接的系統,推薦將這個值設置為 PROCESSES初始化參數加10 。
SEMMNI= 設置系統中信號燈組的最大數量。Oracle10g和11g的推薦值為142。
SEMMNS=設置系統中信號燈的最大數量。操作系統在分配信號燈時不會超過LEAST(SEMMNS, SEMMSL*SEMMNI )。事實上,如果SEMMNS的值超過了SEMMSL*SEMMNI是非法的, 因此推薦SEMMNS的值就設置為SEMMSL*SEMMNI 。Oracle推薦SEMMNS的設置 不小于32000 ,假如數據庫的PROCESSES參數設置為600,則SEMMNS的設置應為:
SQL> select (600+10)*142 from dual;(600+10)*142------------ 8662012345
SEMOPM參數:設置每次系統調用可以同時執行的最大信號燈操作的數量。由于一個信號燈組最多擁有SEMMSL個信號燈,因此有推薦將SEMOPM設置為SEMMSL的值。Oracle驗證的10.2和11.1的SEMOPM的配置為100。
通過下面的命令可以檢查信號燈相關配置:
# cat /proc/sys/kernel/sem250 32000 100 12812
對應的4個值從左到右分別為SEMMSL、SEMMNS、SEMOPM和SEMMNI
-
kernel.shmmax=15461882265
kernel.shmall=3774873
kernel.msgmax=65535
kernel.msgmnb=65535
執行 sudo sysctl -p
可以使用 ipcs -l 看結果,ipcs -u 可以看到實際使用的情況
本文轉自: https://blog.csdn.net/sunansheng/article/details/51889044
感謝原作者
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。