Oracle中的sysctl.conf內核參數


當我們對Oracle進行安裝部署時,需要按照相關要求修改OS內核參數,下面對Oracle按照部署時需要修改的相關內核參數進行簡單介紹。
注:OS的內核參數大多數存放在/proc/sys目錄下,可以在系統運行時進行更改,但是當系統重新啟動時會失效,而通過/etc/sysctl.conf文件可以永久生效修改后的內核參數。

sysctl -p
該命令可以立即生效sysctl.conf中配置的內核參數。

如下為安裝部署Oracle時需要配置的內核參數:
[root@ht01 init.d]# cat /etc/sysctl.conf 
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).

# oracle-database-preinstall-19c setting for fs.file-max is 6815744
fs.file-max = 6815744

# oracle-database-preinstall-19c setting for kernel.sem is '250 32000 100 128'
kernel.sem = 250 32000 100 128

# oracle-database-preinstall-19c setting for kernel.shmmni is 4096
kernel.shmmni = 4096

# oracle-database-preinstall-19c setting for kernel.shmall is 1073741824 on x86_64
kernel.shmall = 1073741824

# oracle-database-preinstall-19c setting for kernel.shmmax is 4398046511104 on x86_64
kernel.shmmax = 4398046511104

# oracle-database-preinstall-19c setting for kernel.panic_on_oops is 1 per Orabug 19212317
kernel.panic_on_oops = 1

# oracle-database-preinstall-19c setting for net.core.rmem_default is 262144
net.core.rmem_default = 262144

# oracle-database-preinstall-19c setting for net.core.rmem_max is 4194304
net.core.rmem_max = 4194304

# oracle-database-preinstall-19c setting for net.core.wmem_default is 262144
net.core.wmem_default = 262144

# oracle-database-preinstall-19c setting for net.core.wmem_max is 1048576
net.core.wmem_max = 1048576

# oracle-database-preinstall-19c setting for net.ipv4.conf.all.rp_filter is 2
net.ipv4.conf.all.rp_filter = 2

# oracle-database-preinstall-19c setting for net.ipv4.conf.default.rp_filter is 2
net.ipv4.conf.default.rp_filter = 2

# oracle-database-preinstall-19c setting for fs.aio-max-nr is 1048576
fs.aio-max-nr = 3145728

# oracle-database-preinstall-19c setting for net.ipv4.ip_local_port_range is 9000 65500
net.ipv4.ip_local_port_range = 9000 65500

net.ipv4.ipfrag_low_thresh=15728640
net.ipv4.ipfrag_high_thresh=16777216


kernel.shmall

shmall表示共享內存總量,以頁為單位, 而shmall默認為4294967296 已經足夠大了,一般不需要調整,shmall不能低於SGA大小,若shmall低於SGA大小,實例啟動時會報:ORA-27123: unable to attach to shared memory segment錯誤,且無法啟動實例。 

kernel.shmmax
shmmax參數用來定義單個共享內存段的最大值,該值應該配置足夠大,能夠在一個共享內存段中容下整個的SGA ,如果配置過低可能導致需要創建多個共享內存段,這樣可能會導致系統性能下降。
269838450688/1024/1024/1024=252GB。

shmmax的單位為Byte(字節)。

vm.min_free_kbytes
該參數表示Linux VM最低保留多少的空閑內存空間,當可用的內存低於配置參數時,系統會進行cache內存的回收,來進行內存的釋放。
單位是kb,524288/1024=512M。

kernel.sem
sem是semaphores的縮寫,進程間通信--信號量,kernel.sem中4個參數分別對應SEMMSL、SEMMNS、SEMOP、SEMMNI

SEMMSL: 每個信號集的最大信號數量 ,一般該參數配置為數據庫中最大 PROCESS 參數的設置值加上 10,Oracle 建議 SEMMSL 不低於100。
SEMMNS:控制整個系統中信號量的最大數量,使用以下計算公式來確定系統中需要配置的信號的最大數量,(SEMMSL * SEMMNI)=SEMMNS。4096*128=524288。
SEMOPM: 該參數表示在一個 semop call中,每個信號量所允許的最大操作數量,一個信號集可以擁有每個信號集當中的最大數量SEMMSL 信號,建議 SEMOPM 等於SEMMSL 。 Oracle 建議SEMOPM的值不低於 100 。
SEMMNI:該參數用於控制整個系統中信號集的最大數量。Oracle 建議SEMMNI 的值不低於 100 。


fs.file-max
該參數表示系統級別最大可以打開文件句柄的數量,文件句柄代表系統中可以打開文件的數量。

net.ipv4.ip_local_port_range
該參數配置向外連接端口范圍,缺省為1024到4999。推薦值  9000 65500

net.ipv4.ipfrag_*
net.ipv4.ipfrag_low_thresh=15728640
net.ipv4.ipfrag_high_thresh=16777216

系統中當數據包傳輸發生錯誤,會進行碎片整理,有效的數據包被保留,而無效的數據包被丟棄,ipfrag參數指定了碎片整理時的最大/最小內存。
注:rac會發生 ipc send timeout ,節點被驅逐  參考RHEL 6.6: IPC Send timeout/node eviction etc with high packet reassembles failure (Doc ID 2008933.1)


net.core.rmem_*

net.core.rmem_default默認數據接收窗口大小。

net.core.rmem_max最大數據接收窗口大小。

net.core.wmem_default默認數據發送窗口大小。

net.core.wmem_max最大數據發送窗口大小。

單位均為字節。


fs.aio-max-nr

該參數表示最大並發異步I/O請求數量,當系統中存在非常高的I/O請求時,如果該參數配置過低,可能導致數據庫報ORA-27090 - Unable to Reserve Kernel Resources for Asynchronous Disk I/O錯誤,遇到該問題需將fs.aio-max-nr調整為Oracle建議值3145728。

注:ORA-27090 - Unable to Reserve Kernel Resources for Asynchronous Disk I/O (Doc ID 579108.1)


kernel.shmmni

該參數為共享內存段的最大數量,缺省值為4096 ,一般情況下無需調整。

vm.nr_hugepages
具體數值參考下腳本跑的值  Oracle Linux: Shell Script to Calculate Values Recommended Linux HugePages / HugeTLB Configuration (Doc ID 401749.1)
rac的話還要把grid asm的加上

   vm.swappiness=10

   物理內存使用到90%和swap交換數據

   vm.dirty_ratio=20

   可用臟數據填充的絕對最大系統內存量為內存的20%,必須將所有臟數據提交到磁盤,同時所有新的I/O塊都會被阻塞,減少緩存,避免內存不足

[root@ht01 ~]# cat /proc/sys/vm/swappiness
10
[root@ht01 ~]# cat /proc/sys/vm/dirty_ratio
20

 
        

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM