Oracle大頁記憶體和核心引數優化配置

2021-10-08 04:09:07 字數 2820 閱讀 8661

1、大記憶體頁設定

在linux系統上使用oracle資料庫,強烈建議使用大記憶體頁,否則對大sga和高連線數系統來說,系統的效能和穩定性將會受到嚴重影響。

下面是大記憶體頁設定的具體步驟:

(1).   確認作業系統支援大記憶體頁

有的作業系統核心不支援大記憶體頁,通過下面的命令可以確認系統是否支援大記憶體頁。

#  grep -i huge /proc/meminfo

#grep -i huge /proc/meminfo

anonhugepages:         0 kb

hugepages_total:   129231

hugepages_free:    51661

hugepages_rsvd:        0

hugepages_surp:        0

hugepagesize:       2048 kb

上述資訊表明了核心支援大記憶體頁,大記憶體頁面大小為2m。

(2).   計算需要的大記憶體頁數量

根據系統情況確定sga大小,在初始情況下可以設定sga為物理記憶體一半大小,假設其為504g,由於oracle可能會使得sga略微大於設定的引數值,所以我們一般會設定大頁記憶體總量比sga略大。

504/2(記憶體的一半)*1024(換算成m)/2m=129024(頁),比這個值略大一點,比如為129231。

(3).   設定核心引數

在/etc/sysctl.conf檔案中增加一行:

vm.nr_hugepages = 129231

然後用sysctl –p命令使引數生效。

(4).   檢查大記憶體頁數量:

grep  -i huge /proc/meminfo

在得到的結果中hugepages_total值應該為,否則可能是作業系統記憶體碎片化嚴重,沒有足夠的連續的記憶體用於大頁面記憶體,此種情況下需要重啟伺服器。

amm(自動記憶體管理)不支援使用大記憶體頁,所以在後面建庫時,應設定資料庫的memory_target引數和memory_max_target值為0。資料庫中需要將use_large_pages引數設定為true。

2、核心引數優化:

vm.min_free_kbytes=2147483(最小的記憶體預留空間,使用到這個記憶體值後,會觸發記憶體**,這個值為物理記憶體的0.4%然後換成k為單位)

vm.dirty_ratio=10(刷髒整理)

以上以位元組為單位(接受和傳送的資料庫的視窗大小)

fs.aio-max-nr=3145728(非同步io的數量)

net.ipv4.icmp_ratelimit=0

net.ipv4.ipfrag_low_thresh=31457280(碎片整理時的最低記憶體)

net.ipv4.ipfrag_high_thresh=33554432(碎片整理時的最大記憶體)

panic_on_oops=1

kernel.shmmax=540096331776(定義單個共享記憶體段的最大值,該值配置的足夠大,使得整個sga容置此記憶體段中,配置和記憶體一樣大,比記憶體少乙個位元組即可)

vm.nr_hugepages=130200(一共多少個大頁)

net.ipv4.conf.ib1.rp_filter=2(不丟包)

net.ipv4.conf.ib3.rp_filter=2(不丟包)

net.ipv4.conf.bond0.rp_filter=1

net.ipv4.conf.bond0.rp_filter = 1

net.ipv4.conf.ib1.rp_filter = 2

net.ipv4.conf.ib3.rp_filter = 2

net.ipv4.conf.bond0.rp_filter = 1

net.ipv4.conf.ib1.rp_filter = 2

net.ipv4.conf.ib3.rp_filter = 2

net.ipv4.conf.bond0.rp_filter = 1

net.ipv4.conf.ib1.rp_filter = 2

net.ipv4.conf.ib3.rp_filter = 2

net.ipv4.conf.bond0.rp_filter = 1

net.ipv4.conf.ib1.rp_filter = 2

net.ipv4.conf.ib3.rp_filter = 2

net.ipv4.conf.bond0.rp_filter = 1

net.ipv4.conf.ib1.rp_filter = 2

net.ipv4.conf.ib3.rp_filter = 2

/etc/security/limits.conf引數限制

grid soft nproc 65536

grid hard nproc 65536

grid soft nofile 65536

grid hard nofile 65536

grid hard memlock unlimited

grid soft memlock unlimited

grid soft stack 65536

grid hard stack 65536

oracle soft nproc 65536

oracle hard nproc 65536

oracle soft nofile 65536

oracle hard nofile 65536

oracle hard memlock unlimited

oracle soft memlock unlimited

oracle soft stack 65536

oracle hard stack 65536

linux 大頁記憶體

1 什麼是大頁記憶體 大記憶體頁 有助於 linux 系統進行虛擬記憶體管理。顧名思義,除了標準的 4kb 大小的頁面外,它們還能幫助管理記憶體中的巨大的頁面。使用 大記憶體頁 你最大可以定義 1gb 的頁面大小。2 為什麼使用大頁記憶體 如果在系統中使用了huge page,則記憶體頁的數量會減少...

Linux核心引數和Oracle相關引數調整

shared memory segments key shmid owner perms bytes nattch status 0x00000000 65537 oracle 640 4194304 27 0x00000000 98306 oracle 640 20971520 27 0x0000...

DPDK 大頁記憶體配置

對於2 mb的頁面,可以選擇在系統啟動後分配大頁面。通過在 sys devices 目錄中的nr hugepages檔案中回顯所需的大頁面數來完成此操作。對於單節點系統,使用的命令如下 假設需要1024頁 echo 1024 sys kernel mm hugepages hugepages 204...