本章節的範例為您顯示如何使用 rcapstat ,監視具備已定義實體記憶體運算之處理集合的資源用量。
Caps(運算)為與兩位使用者相關的兩個 lnodes 定義。user1 具有 50 百萬位元組的運算,而 user2 具有 10 百萬位元組的運算。
下列指令以5 秒的取樣間隔製作報告。報告會發送五次,每一次取樣後一次。
usermachine% rcapstat 5 5 id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 50M 0K 3312K 0K 78194 user2 1 2368K 1856K 10M 0K 0K 0K 0K id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 0K 0K 0K 0K 78194 user2 1 2368K 1856K 10M 0K 0K 0K 0K id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 0K 0K 0K 0K 78194 user2 1 2368K 1928K 10M 0K 0K 0K 0K id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 0K 0K 0K 0K 78194 user2 1 2368K 1928K 10M 0K 0K 0K 0K id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 0K 0K 0K 0K 78194 user2 1 2368K 1928K 10M 0K 0K 0K 0K |
輸出的首三行組成第一個報告,其中包含兩個 lnode 的運算與 lnode 資訊,以及自從啟動 rcapd 後的記憶體分頁統計資料。at 及 pg 欄位是用於 user1 之大於零的數字,以及用於 user2 的零數值,它們標示在常駐程式的歷程記錄中,有某一個時段 user1 超過其運算,而 user2 則沒有。
接續的報告包含自優先間隔後的記憶體分頁統計資料,但不會顯示重要的活動。
limadm(1MSRM) 指令可以用來降低 lnode 的記憶體運算,使運算更具備限制作用。rcapd 會在下一個設置間隔後強制執行新的運算(請參閱 rcapadm(1MSRM))。也可以傳送訊號,這將使 rcapd 立即強制執行新的運算。
admin# limadm set rss.limit=30M user1 admin# pkill -HUP rcapd |
下列指令以5 秒的取樣間隔製作報告。報告會發送五次,每一次取樣後一次。
admin# rcapstat 5 5 id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 30M 50M 0K 3312K 0K 78194 user2 1 2368K 1856K 10M 0K 0K 0K 0K id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 36M 30M 52M 52M 632K 632K 78194 user2 1 2368K 2096K 10M 0K 0K 0K 0K id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 33M 30M 57M 52M 816K 632K 78194 user2 1 2368K 1968K 10M 0K 0K 0K 0K id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 27M 30M 4792K 4792K 40K 40K 78194 user2 1 2368K 1144K 10M 0K 0K 0K 0K id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 27M 30M 0K 0K 0K 0K 78194 user2 1 2368K 1144K 10M 0K 0K 0K 0K |
當運算從 50 百萬位元組降到 30 百萬位元組時,rcapd 會透過嘗試將運算值以上的 6 百萬位元組出頁來做出反應。目標將會達到;因為超出的只是個小數目。
下列指令以5 秒的取樣間隔製作報告。報告會發送五次,每一次取樣後一次。
user1machine% rcapstat 5 5 |
id project nproc vm rss cap at avgat pg avgpg 376565 user1 57 209M 46M 10M 440M 220M 5528K 2764K 376565 user1 57 209M 44M 10M 394M 131M 4912K 1637K 376565 user1 56 207M 43M 10M 440M 147M 6048K 2016K 376565 user1 56 207M 42M 10M 522M 174M 4368K 1456K 376565 user1 56 207M 44M 10M 482M 161M 3376K 1125K |
在此範例中,專案 user1 具有超出其實體記憶體運算的 RSS。pg 欄位中的非零數值,標示 rcapd 透過降低專案之處理的實體記憶體用量以嘗試符合運算時,一貫地將記憶體出頁。然而,從變動的 rss 值未顯示相應的降低,標示 rcapd 並未成功。這意味著應用程式的常駐記憶體正被活躍地使用,促使 rcapd 影響工作設定。在此情況下,系統將繼續遇到高記憶體分頁錯誤率以及相關的 I/O,直到工作設定大小減少後,運算才會提高,或者應用程式變更其記憶體存取樣式。
下例是前例的繼續,且它使用相同的專案。
example% rcapstat 5 5 id project nproc vm rss cap at avgat pg avgpg 376565 user1 56 207M 44M 10M 381M 191M 15M 7924K 376565 user1 56 207M 46M 10M 479M 160M 2696K 898K 376565 user1 56 207M 46M 10M 424M 141M 7280K 2426K 376565 user1 56 207M 43M 10M 401M 201M 4808K 2404K 376565 user1 56 207M 43M 10M 456M 152M 4800K 1600K 376565 user1 56 207M 44M 10M 486M 162M 4064K 1354K 376565 user1 56 207M 52M 100M 191M 95M 1944K 972K 376565 user1 56 207M 55M 100M 0K 0K 0K 0K 376565 user1 56 207M 56M 100M 0K 0K 0K 0K 376565 user1 56 207M 56M 100M 0K 0K 0K 0K 376565 user1 56 207M 56M 100M 0K 0K 0K 0K 376565 user1 56 207M 56M 100M 0K 0K 0K 0K |
透過提高專案的運算或透過變更最小運算記憶體強制值(請參閱 rcapadm(1MSRM)),來約束運算的執行,從而使常駐設定可以成為工作設定。 rss 欄位可能會穩定下來以顯示專案工作設定大小,如此例所示。這是一個最小運算值,它可以允許專案中的處理不會在不斷受到記憶體分頁錯誤的情況下執行操作。