關(guān)于AIX上VMO調(diào)整參數(shù)的若干說明
最近,關(guān)于AIX機(jī)器上虛擬內(nèi)存參數(shù)調(diào)整的問題出現(xiàn)了好幾次,也調(diào)過好幾臺(tái)機(jī)器的參數(shù),現(xiàn)結(jié)合網(wǎng)上的文檔,
把這部分知識(shí)理一理,做一下記錄。
1.在AIX系統(tǒng)中,內(nèi)存可以簡(jiǎn)單的分為兩類,計(jì)算型內(nèi)存和文件型內(nèi)存,
在AIX操作系統(tǒng)中,可以使用topas命令查看整個(gè)系統(tǒng)的運(yùn)行情況,其中一個(gè)重要的部份是系統(tǒng)的內(nèi)存使用情況,
以及交換情況:
MEMORY
Real,MB 16032
% Comp 83.2
% Noncomp 9.9
% Client 9.9
PAGING SPACE
Size,MB 16384
% Used 3.3
% Free 96.6
在一個(gè)使用裸設(shè)備的系統(tǒng)中,文件型內(nèi)存,即上面的%Noncomp,%Client,只需要使用整個(gè)系統(tǒng)很少的內(nèi)存;而
把大部份的內(nèi)存作為計(jì)算型內(nèi)存(%Comp)來使用,這部份內(nèi)存量主要為ORACLE SGA和PGA所用,其中ORACLE SGA 為
pinned memory.
根據(jù)系統(tǒng)內(nèi)存大小,設(shè)定系統(tǒng)可以pin住的最大值:
maxpin% = 80 --此值可以升高
v_pinshm = 1 --允許pin住內(nèi)存
接下來是三個(gè)控制文件型內(nèi)存的參數(shù)的值:
maxclient% = 10 --文件型內(nèi)存可使用內(nèi)存總的百分比的最大值,<=maxperm%
maxperm% = 10 --文件型內(nèi)存可使用內(nèi)存總的百分比的最大值
minperm% = 5 --文件型內(nèi)存可使用內(nèi)存總的百分比的最小值
這三個(gè)參數(shù),可以根據(jù)內(nèi)存總量大小,進(jìn)行適度調(diào)節(jié)。計(jì)算型內(nèi)存與文件型內(nèi)存,在實(shí)際的應(yīng)用中,需要遵循
以下一些原則(前3條是參考別人的):
1.使用的文件型內(nèi)存百分比 + 使用的計(jì)算型內(nèi)存百分比 < 100%
2.計(jì)算型內(nèi)存中的pinned memory設(shè)置要合理,即sga大小要設(shè)置合理,要留一部份給OS,OS也需要pinned
memory.當(dāng)系統(tǒng)資源緊張時(shí),OS的pinned memory具有最高的優(yōu)先級(jí).
3.保證系統(tǒng)非pinned 計(jì)算型 memory有一個(gè)合理的成長(zhǎng)空間,這部份主要是給ORACLE PGA使用,當(dāng)連接數(shù)
增長(zhǎng)過快時(shí),此內(nèi)存的使用增長(zhǎng)也相當(dāng)?shù)拿黠@,而此增長(zhǎng)很有可能會(huì)導(dǎo)致操作系統(tǒng)的交換。
當(dāng)系統(tǒng)的使用的文件型內(nèi)存百分比 + 使用的計(jì)算型內(nèi)存百分比 >= 100%,系統(tǒng)便開始產(chǎn)生交換,系統(tǒng)的
PAGING SPACE會(huì)持續(xù)的增長(zhǎng),影響到產(chǎn)品庫(kù)的安全。
4.一般的數(shù)據(jù)庫(kù)服務(wù)器,文件型內(nèi)存可以使用較少的空間,因?yàn)槲募蛢?nèi)存并不主動(dòng)釋放,可能造成內(nèi)存
資源的短缺及Paging Space使用率過高,所以數(shù)據(jù)庫(kù)服務(wù)器上maxclient、maxperm、minperm的值不宜過大,典
型值如下:
maxclient% = 8
maxperm% = 12
minperm% = 5
如何更改這三個(gè)參數(shù)呢, 在AIX5.3上,可以使用 vmo 命令,此命令設(shè)置或顯示所有虛擬內(nèi)存管理器調(diào)整參數(shù)
的當(dāng)前值或下一個(gè)引導(dǎo)值。還可以用此命令進(jìn)行永久性更改,或?qū)⒏耐七t到下一次重新引導(dǎo)之后生效。此命令
是設(shè)置參數(shù)還是顯示參數(shù),要由所帶標(biāo)志來決定。帶 -o 標(biāo)志的話,兩個(gè)操作都執(zhí)行。它既可以顯示參數(shù)的值,
也可以為參數(shù)設(shè)置新值。
如果在修改這些參數(shù)前,想查看這些參數(shù)的值,則可以用下面的命令:
vmo -L 或者 vmstat -v 或者vmo -a
調(diào)整:vmo -p -o maxclent%=8
vmo -p -o maxperm%=12
vmo -p -o minperm%=5
利用-p參數(shù),是立即生效的,不需要重啟,下次重啟仍然有效。
如果是-r參數(shù),是不立即生效的,重啟生效,turns on the updating of the
/etc/tunables/nextboot file.重啟生效的參數(shù)記錄在 /etc/tunables/nextboot。
因?yàn)閰?shù)maxperm充當(dāng)?shù)氖擒浵拗疲晕募蛢?nèi)存的占用率仍然可以超過maxperm的設(shè)定值,如果需要進(jìn)行強(qiáng)制
限制,則需要將參數(shù)strict_maxperm的值設(shè)為1,該參數(shù)的缺省值是0,但此方法需要謹(jǐn)慎使用。
備注:也許有人不是很熟悉vmo,反而熟悉vmtune,其實(shí)他們是一樣的
AIX 5.3以前,查看參數(shù)值 vmtune -a
修改minperm和maxperm的值為5%和20%,vmtune -p 5 -P 20
如果是64位內(nèi)核,vmtune64 -p 5 -P 20
AIX 5.3: vmo -p -o maxperm%=20
vmo -p -o minperm%=5