minperm%, maxperm%和maxclient%

531968912發表於2016-09-22
(1) minperm%
如果由檔案頁面佔有的實際記憶體的百分比低於這個級別,則頁面替換演算法既替換檔案頁面也替換計算頁面,而不管repage rate。
# vmo -a |grep minperm%
minperm% = 20
[@more@](1) minperm%
如果由檔案頁面佔有的實際記憶體的百分比低於這個級別,則頁面替換演算法既替換檔案頁面也替換計算頁面,而不管repage rate。
# vmo -a |grep minperm%
minperm% = 20

(2) maxperm%
如果由檔案頁面佔有的實際記憶體的百分比高於這個級別,則頁面替換演算法僅替換檔案頁面。
# vmo -a |grep maxperm%
maxperm% = 80

(3) maxclient%
如果由檔案頁面佔有的實際記憶體的百分比高於這個級別,則頁面替換演算法僅替換客戶機頁面。
# vmo -a |grep maxclient%
maxclient% = 80

當由檔案頁面佔有的實際記憶體的百分比處於 minperm 和 maxperm 之間時,VMM
通常只替換檔案頁面,但是如果檔案頁面的重新調頁(repaging)率高於計算頁面的重新調頁率的話,計算頁面也被替換。頁面替換演算法的主要意圖是確保
計算頁面得到合理的待遇。例如,對於可能會很快再次使用的程式文字頁,順序讀取長的資料檔案到記憶體中應該不會使它們丟失。對閾值和重新調頁率使用頁面替換
演算法可確保合理地對待這兩種型別的頁面,但仍稍微偏向有利於計算頁面的一方。
透過vmstat -v可以看到當前persistent或者client page的數目和百分比,可以作為系統調優的依據.
# vmstat -v
4079616 memory pages
3870685 lruable pages
601736 free pages
2 memory pools
535883 pinned pages
80.0 maxpin percentage
20.0 minperm percentage
80.0 maxperm percentage
66.2 numperm percentage
2565739 file pages
0.0 compressed percentage
0 compressed pages
66.7 numclient percentage
80.0 maxclient percentage
2583086 client pages
0 remote pageouts scheduled
28222 pending disk I/Os blocked with no pbuf
0 paging space I/Os blocked with no psbuf
2740 filesystem I/Os blocked with no fsbuf
0 client filesystem I/Os blocked with no fsbuf
106338 external pager filesystem I/Os blocked with no fsbuf

List-based LRU (page_steal_method)
在AIX 5.3, LRU演算法可以用lists或者page frame table,在AIX 5.3之前,只有page frame
table的演算法, The list-based algorithm provides a list of pages to scan for
each type of segment. 下面是段型別的列表:
  • Working
  • Persistent
  • Client
  • Compressed

# vmo -a |grep page_steal_method
page_steal_method = 0
如果page_steal_method = 1, 將採用list-based LRU演算法, 如果page_steal_method
parameter 為 0, 將採用physical-address-based scanning的方式.
page_steal_method引數值只有在bosboot and reboot後生效.
# vmo -L page_steal_method
NAME CUR DEF BOOT MIN MAX UNIT TYPE
DEPENDENCIES
-------------------------------------------------------------------------------
page_steal_method 0 0 0 0 1 boolean B
-------------------------------------------------------------------------------

strict_maxperm
預設為0. 當strict_maxperm 設定成 1, places a hard limit on how much memory
is used for a persistent file cache by making the maxperm value be the
upper limit for this file cache. 當達到上線的時候least recently used
(LRU)將執行在persistent pages上.
# vmo -a |grep strict_maxperm
strict_maxperm = 0

Enhanced JFS file system cache 相關的引數: maxclient, strict_maxclient和lru_file_repage
Enhanced JFS file system cache使用client page來作為buffer
cache,透過maxclient%來控制page stealing. 如果strict_maxlient設定為0,
maxclient%將用來作為一個soft limit. 也就是說client
pages可以超過maxclient引數,如果超過這個值,只有client file page被stolen.
當lru_file_repage設定為1的時候,如果client pages的數目介於minperm和maxclient之間,
LRU演算法將參考repage的計數. 最近沒有被referenced的page將被stolen. If the value of the
file repage counter is higher than the value of the computational
repage counter, computational pages, which are the working storage, are
selected for replacement. If the value of the computational repage
counter exceeds the value of the file repage counter, file pages are
selected for replacement.
當lru_file_repage設定為0的時候, 如果client pages的數目大於minperm,將選擇file pages被替換.如果小於minperm,任何沒有被referenced的page將被替換.
注意:maxclient同樣影響NFS client和compressed pages.
# vmo -a |grep lru_file_repage
lru_file_repage = 1
# vmo -a |grep strict_maxclient
strict_maxclient = 1

工程經驗
記憶體調優主要集中在幾個關鍵引數中,往往這幾個關鍵引數就能很大地提高系統的記憶體使用效能. 這幾個引數是minperm%, maxperm%, maxclient%和lru_file_repage.
原則:首先了解你的應用型別,是檔案讀寫型還是資料庫型別. 儘量保證你的應用執行所需要的資料充分地利用實體記憶體. 具體的工程Tips例子請參見記憶體調優的工程經驗篇

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25462274/viewspace-2125332/,如需轉載,請註明出處,否則將追究法律責任。

相關文章