Oracle 效能最佳化之核心的shmall 和shmmax 引數
1. 核心的 shmall 和 shmmax 引數
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引數的設定。
-
2.配置訊號燈( semphore )的引數
訊號燈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的設定應為:
SEMOPM引數:設定每次系統呼叫可以同時執行的最大訊號燈操作的數量。由於一個訊號燈組最多擁有SEMMSL個訊號燈,因此有推薦將SEMOPM設定為SEMMSL的值。Oracle驗證的10.2和11.1的SEMOPM的配置為100。
透過下面的命令可以檢查訊號燈相關配置:
對應的4個值從左到右分別為SEMMSL、SEMMNS、SEMOPM和SEMMNI
-
3.修改 /etc/sysctl.conf
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
感謝原作者
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20893244/viewspace-2158025/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 核心引數kernel.shmall和kernel.shmmaxHMM
- 【Linux】kernel.shmmax和shmall設定LinuxHMM
- Oracle 核心引數Oracle
- oracle rac 核心引數詳解Oracle
- Oracle中的sysctl.conf核心引數Oracle
- MySQL效能最佳化之Open_Table配置引數的合理配置建議MySql
- oracle 效能最佳化Oracle
- solaris10中安裝oracle核心引數的調整Oracle
- C# 中的 in 引數和效能分析C#
- Linux核心版本以及部分引數與效能之二Linux
- oracle大表效能最佳化Oracle
- .Net核心級的效能最佳化(GC篇)GC
- oracle非同步IO之filesystemio_options引數Oracle非同步
- Nginx配置和Linux核心引數的學習與驗證NginxLinux
- ORACLE並行相關的引數Oracle並行
- Guava Cache:核心引數深度剖析和原始碼分析Guava原始碼
- 【轉載】Linux核心除錯之使用模組引數Linux除錯
- Oracle:PDB 引數管理Oracle
- postgresql配置引數最佳化SQL
- mongodb核心原始碼實現及效能最佳化系列:Mongodb特定場景效能數十倍提升最佳化實踐MongoDB原始碼
- Linux核心引數overcommit_memory和OOM killer介紹LinuxMITOOM
- Oracle 12C 中CDB和PDB的引數檔案管理Oracle
- [OS/Linux] Linux核心引數:net.core.somaxconn(高併發場景核心引數)Linux
- 引數的定義和引數的傳遞
- SQL效能最佳化之索引最佳化法SQL索引
- linux常用核心引數說明Linux
- Django之ORM常用欄位和引數DjangoORM
- MySQL效能相關引數MySql
- 多庫取數的效能最佳化方案
- 超引數最佳化完整指南
- Oracle初始化引數的來源Oracle
- Oracle最佳化之單表分頁最佳化Oracle
- 關於 React 效能最佳化和數棧產品中的實踐React
- Oracle中單引號和雙引號的區別Oracle
- histb 引導核心 boot_cmd 引數含義boot
- Oracle中exists和in的效能差異Oracle
- oracle資料庫--Oracle雙引號和單引號的區別小結Oracle資料庫
- Oracle GoldenGate常用引數詳解OracleGo