在Linux系統中,核心引數kernel.shmall
和kernel.shmmax
與共享記憶體(System V共享記憶體)有關,它們分別定義了系統可以分配的共享記憶體段的最大頁數和單個共享記憶體段的最大位元組數。以下是一些關於這些引數的推薦設定:
-
kernel.shmall:這個引數控制可以使用的共享記憶體的總頁數。Linux共享記憶體頁的大小通常是4KB。因此,
kernel.shmall
的值通常設定為系統的實體記憶體大小除以頁的大小。例如,如果系統有16GB的記憶體,那麼kernel.shmall
可以設定為16GB * 1024 * 1024 / 4KB = 4194304
頁3。 -
kernel.shmmax:這個引數定義了單個共享記憶體段的最大位元組數。對於32位系統,最大值通常是4GB(
4294967295
位元組);對於64位系統,理論上可以設定為實體記憶體大小減去1位元組。但是,實際設定時,建議值通常大於SGA_MAX_SIZE或MEMORY_MAX_TARGET的值,特別是對於安裝了Oracle資料庫的系統,kernel.shmmax
的值應該比記憶體的一半大一些28。