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