1. kernel.shmmax : 是核心參數(shù)中最重要的參數(shù)之一,用于定義單個(gè)共享內(nèi)存段的最大值。設(shè)置應(yīng)該足夠大,能在一個(gè)共享內(nèi)存段下容納下整個(gè)的 SGA , 設(shè)置的過低可能會導(dǎo)致需要?jiǎng)?chuàng)建多個(gè)共享內(nèi)存段,這樣可能導(dǎo)致系統(tǒng)性能的下降。至于導(dǎo)致系統(tǒng)下降的主要原因?yàn)樵趯?shí)例啟動(dòng)以及 ServerProcess 創(chuàng)建的時(shí)候,多個(gè)小的共享內(nèi)存段可能會導(dǎo)致當(dāng)時(shí)輕微的系統(tǒng)性能的降低 ( 在啟動(dòng)的時(shí)候需要去創(chuàng)建多個(gè)虛擬地址段,在進(jìn)程創(chuàng)建的時(shí)候要讓進(jìn)程對多個(gè)段進(jìn)行“識別”,會有一些影響 ) ,但是其他時(shí)候都不會有影響。 官方建議值: 32 位 linux 系統(tǒng):可取最大值為 4GB ( 4294967296bytes ) -1byte ,即 4294967295 。建議值為多于內(nèi)存的一半,所以如果是 32 為系統(tǒng),一般可取值為 4294967295 。 32 位系統(tǒng)對 SGA 大小有限制,所以 SGA 肯定可以包含在單個(gè)共享內(nèi)存段中。 64 位 linux 系統(tǒng):可取的最大值為物理內(nèi)存值 -1byte ,建議值為多于物理內(nèi)存的一半,一般取值大于 SGA_MAX_SIZE 即可,可以取物理內(nèi)存 -1byte 。 內(nèi)存為 12G 時(shí),該值為 12*1024*1024*1024-1 = 12884901887 內(nèi)存為 16G 時(shí),該值為 16*1024*1024*1024-1 = 17179869183 內(nèi)存為 32G 時(shí),該值為 32*1024*1024*1024-1 = 34359738367 內(nèi)存為 64G 時(shí),該值為 64*1024*1024*1024-1 = 68719476735 內(nèi)存為 128G 時(shí),該值為 128*1024*1024*1024-1 = 137438953471 2. kernel.shmall : 該參數(shù)控制可以使用的共享內(nèi)存的總頁數(shù)。 Linux 共享內(nèi)存頁大小為 4KB, 共享內(nèi)存段的大小都是共享內(nèi)存頁大小的整數(shù)倍。 一個(gè)共享內(nèi)存段的最大大小是 16G ,那么需要共享內(nèi)存頁數(shù)是 16GB/4KB==4194304 (頁), 當(dāng)內(nèi)存為 12G 時(shí), kernel.shmall = 3145728 當(dāng)內(nèi)存為 16G 時(shí), kernel.shmall = 4194304 當(dāng)內(nèi)次為 32G 時(shí), kernel.shmall = 8388608 當(dāng)內(nèi)存為 64G 時(shí), kernel.shmall = 16777216 當(dāng)內(nèi)存為 128G 時(shí), kernel.shmall = 33554432 |
|