歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux核心參數Shmmax,shmall,shmni

Linux核心參數Shmmax,shmall,shmni

日期:2017/2/28 14:50:41   编辑:Linux教程

Linux 下核心參數調整

kernel.shmmax

shmmax是核心參數中最重要的參數之一,用於定義單個共享內存段的最大值,shmmax設置應足夠大,能在一個共享內存段下容納下整個的SGA,設置的過低可能會導致需要創建多個共享內存段,可能導致系統性能的下降 。

Oralce建議一個大的共享內存段能容納整個SGA,這樣在任何時候都不會有性能下降的隱患。

Oracle安裝文檔建議,32位Linux設置shmmax 為32位最大限制值(settingshmmax to the 32-bit number limit),即4G,所以1-4G 的物理內存,可以直接設置shmmax 為最大物理內存即可,SGA 肯定在一個共享內存段中,32位Linux 物理內存大於4G 的設置為4G 即可

設置shmmax>=SGA(32位系統是否支持到1.7G 以上SGA 需要注意) 。如果是64位Linux 系統,shmmax 設置為大於SGA_MAX_SIZE即可。

Ipcs -sa 可以看到共享內存段個數

kernel.shmall

kernel.shmall 參數是控制共享內存頁數 。Linux共享內存頁大小為4KB, 共享內存段的大小都是共享內存頁大小的整數倍。一個共享內存段的最大大小是16G,需要共享內存頁數是16GB/4KB=16777216KB/4KB=4194304(頁),即64位系統16GB 物理內存,設置kernel.shmall=4194304才符合要求(幾乎是原來設置2097152的兩倍)。可以將shmmax參數調整到16G ,同時可以修改SGA_MAX_SIZE和SGA_TARGET為12G(設置的SGA最大大小也可是2G~14G等,還要協調PGA參數及OS 等其他內存使用,不能設置太滿,如16G)

kernel.shmmni

shmmni 內核參數是共享內存段的最大數量(注意該參數不是shmmin,是shmmni,shmmin 表示內存段最小大小 ) 。

shmmni缺省值4096 足夠。

shmmax(bytes) = shmmni(page size, default 4k) * shmall (page的個數)

Copyright © Linux教程網 All Rights Reserved