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