新Oracle調(diào)優(yōu):內(nèi)核參數(shù)設(shè)置詳解
Oracle數(shù)據(jù)庫是目前企業(yè)級應(yīng)用最為常用的一款關(guān)系型數(shù)據(jù)庫,但是在使用過程中難免會出現(xiàn)性能瓶頸等問題。其中一個常見的解決方案是通過調(diào)整內(nèi)核參數(shù)來優(yōu)化Oracle的性能。下面就來詳細講解幾個常見的內(nèi)核
Oracle數(shù)據(jù)庫是目前企業(yè)級應(yīng)用最為常用的一款關(guān)系型數(shù)據(jù)庫,但是在使用過程中難免會出現(xiàn)性能瓶頸等問題。其中一個常見的解決方案是通過調(diào)整內(nèi)核參數(shù)來優(yōu)化Oracle的性能。下面就來詳細講解幾個常見的內(nèi)核參數(shù)設(shè)置。
1.
是指可以同時擁有的異步IO請求的數(shù)目,Oracle推薦將其設(shè)置為1048576(1024x1024),即1024K。如果不確定當前系統(tǒng)的值,可以通過命令“cat /proc/sys/fs/aio-max-nr”來查看。若出現(xiàn)句柄不足的錯誤信息,可能是因為這個值設(shè)置的太小,需要增大。
2.
定義了一個Linux進程能分配虛擬地址空間的單個共享內(nèi)存段的大?。ㄒ宰止?jié)為單位)。Oracle的建議是希望一個大的共享內(nèi)存段能容納整個SGA,這樣在任何時候都不會有性能下降的隱患。使用ipcs -m命令可以查看共享內(nèi)存段的分配情況。
如果不確定當前系統(tǒng)的值,可以通過命令“cat /proc/sys/kernel/shmmax”來查看。通常情況下,Oracle建議將其設(shè)置為至少SGA大小加上一些額外的內(nèi)存空間。
3.
參數(shù)表示配置系統(tǒng)一次能夠使用的最大共享頁面數(shù),該參數(shù)的值基于ceil(shmmax/PAGE_SIZE)(其中PAGE_SIZE通常為4096字節(jié))??梢酝ㄟ^命令“getconf PAGE_SIZE”來查看當前系統(tǒng)的PAGE_SIZE值。
如果不確定當前系統(tǒng)的值,可以通過命令“cat /proc/sys/kernel/shmall”來查看。如果該值太小,可能會遇到ORA-27102: out of memory等問題。
4.
參數(shù)用于設(shè)置共享內(nèi)存段的總個數(shù),即總共可以開創(chuàng)多少個共享內(nèi)存段。對于Oracle 11g,建議將其設(shè)置為至少4096。除非使用了big pages或huge pages,PAGE_SIZE通常為4096字節(jié)。
以上是常見的幾個內(nèi)核參數(shù)設(shè)置,如果在使用Oracle時遇到性能問題,可以嘗試調(diào)整這些參數(shù)來優(yōu)化Oracle性能。當然,在進行參數(shù)調(diào)整時,需要根據(jù)自身環(huán)境的實際情況進行調(diào)整,避免參數(shù)設(shè)置不當導(dǎo)致其他問題的出現(xiàn)。