歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux內核 >> Oracle linux內核參數設置詳解

Oracle linux內核參數設置詳解

日期:2017/3/3 10:57:28   编辑:Linux內核

kernel.shmmax = 274877906944
該參數定義了共享內存段的最大尺寸(以字節為單位)。

Shmmax是核心參數中最重要的參數之一,用於定義單個共享內存段的最大值,

shmmax設置應該足夠大,能在一個共享內存段下容納下整個的SGA ,設置的過低可能會導致需要創建多個共享內存段,這樣可能導致系統性能的下降。

SHMMAX僅僅是在共享內存段被創建的時候用來比較的一個數字,當共享內存段被一個進程(Process)創建,操作系統檢查是否被要求的共享內存段的值大於 shmmax 的值,如果是,那麼將會拋出一個錯誤。這個時候系統會創建另外的一個或多個共享內存段滿足進程的需求。一般來說,共享內存段個數和系統性能沒有太直接的關系,也不會對性能產生太大的影響。

Steve Adams 在他的小冊子中說過,在實例啟動以及Server Process 創建的時候,多個小的共享內存段可能會導致當時輕微的系統性能的降低(在啟動的時候需要去創建多個虛擬地址段,在進程創建的時候要讓進程對多個段進行“識別”,會有一些影響),但是其他時候都不會有影響。這意味著如果你的程序不是經常 CreateProcesses(以及Destroy Them),性能方面就不是考慮的問題。

當然Oralce 的建議是希望一個大的共享內存段能容納整個SGA,其值應>=sag_max_size初始化參數的大小,還要不小於物理內存的一半,這樣在任何時候都不會有甚至輕微的性能下降的隱患。Oracle 安裝文檔建議 32BitLinux 系統設置shmmax 為32Bit 最大的限制值(setting shmmax to the 32-bit number limit),也就是4G 。

所以一般來說,1-4G 的物理內存,可以直接設置shmmax為最大物理內存即可,那麼SGA 肯定在一個共享內存段中,32Bit Linux 系統物理內存大於4G 的設置為4G 即可 。

總之,一般設置shmmax >=SGA(32Bit 系統是否支持到1.7G 以上SGA 需要注意) ,缺省為32M,

如果是64Bit 的Linux 操作系統,shmmax 設置為大於SGA_MAX_SIZE即可。

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

kernel.shmmni =4096
這個內核參數用於設置系統范圍內共享內存段的最大數量。

kernel.shmmni----shmmni 內核參數是共享內存段的最大數量(注意這個參數不是shmmin,是shmmni, shmmin 表示內存段最小大小 ) 。shmmni 缺省值4096 。

此值也是在系統中可以啟動的Oracle實例的最大數量,通常不需要更改,

因為顯然在生產環境下,一個服務器上同時啟動的實例個數達不到這個數量.

kernel.shmall = 2097152
//該參數表示系統任意時刻可以分配的所有共享內存段的總和的最大值(以頁為單位).kernel.shmall----kernel.shmall 參數是控制共享內存頁數 。Linux共享內存頁大小為4KB,共享內存段的大小都是共享內存頁大小的整數倍。一個共享內存段的最大大小是16G,那麼需要共享內存頁數是16GB/4KB=16777216KB/4KB=4194304 (頁),也就是64Bit 系統下16GB 物理內存,設置 kernel.shmall = 4194304才符合要求(幾乎是原來設置2097152的兩倍)。這時可以將shmmax 參數調整到 16G 了,同時可以修改SGA_MAX_SIZE

和SGA_TARGET為 12G(您想設置的SGA 最大大小,當然也可以是2G~14G 等,還要協調PGA參數及OS 等其他內存使用,不能設置太滿,比如16G)。

其值應不小於shmmax/page_size.缺省值就是2097152,如果服務器上運行的所有實例的

SGA總和不超過8GB(通常系統可分配的共享內存的和最大值為8GB),通常不需要修改.

kernel.sem = 250 32000100 128 // 表示設置的信號量

fs.file-max =65536 // 表示一個進程可以打開的文件句柄的最大數量.

net.ipv4.ip_local_port_range = 1024 65000//專用服務器模式下與用戶進程通信時分配給用戶的端口區間

net.core.rmem_default=262144 // 默認接收緩沖區大小
net.core.rmem_max=262144 // 接收緩沖區最大值
net.core.wmem_default=262144 // 默認的發送緩沖區大小
net.core.wmem_max=262144 // 發送緩沖區最大值
以上四個值的設置是Oracle安裝時推薦的.(應在安裝完後把最大值改為524288)

修改好內核參數後,執行如下命令使新的設置生效

/sbin/sysctl -p

Copyright © Linux教程網 All Rights Reserved