内存总结
(1)lru_file_repage:
??? 當 lru_file_repage 可調參數設置為 1 時,AIX 內核使用這個重新分頁信息來確定是否僅選擇非計算性的分頁進行操作、或者選擇計算性的和非計算性的分頁進行操作。如果計算性分頁的重新分頁速度比非計算性分頁的重新分頁速度高,那么 AIX 內核將僅選擇非計算性的分頁進行操作(因為計算性分頁的使用更為頻繁)。如果非計算性分頁的重新分頁速度比計算性分頁的重新分頁速度高,那么 AIX 內核將選擇計算性的分頁和非計算性的分頁進行操作。
?? ?
??? 在大多數的客戶環境中,最理想的方式是始終讓內核只選擇非計算性的分頁進行操作,因為與對非計算性的分頁(即數據文件緩存)進行分頁相比,對計算性的分頁(例如,進程的堆棧、數據等等)進行分頁通常會對進程產生更大的性能開銷。因此,可以將 lru_file_repage 可調參數設置為 0。在這種情況下,當 numperm 在 minperm 和 maxperm 之間的時候,AIX 內核始終選擇非計算性的分頁進行操作。
因此一般的需要大量計算頁的服務器(比如數據庫服務器),有兩種設置:
早先是lru_file_repage = 1(aix5的默認值),而maxperm設得盡量小,例如 maxperm%=20。
現在還有一種是設置 lru_file_repage = 0(aix6的默認值),而minperm% = 5, maxperm% = 90。
(2)maxperm 可調參數指出應該用于緩存非計算性分頁的最大內存量。
在缺省情況下,maxperm 是一個“非嚴格的”限制,這意味著在某些情況下可以超出這個限制。將 maxperm 設定為非嚴格的限制,這允許在具有可用空閑內存的時候,可以在內存中緩存更多的非計算性文件。通過將 strict_maxperm 可調參數設置為 1,就可以使 maxperm 限制成為“嚴格”的限制。當 maxperm 是嚴格限制的時候,即使有可供使用的空閑內存,內核也不允許非計算性分頁的數目超出 maxperm 的限制。因此,將 maxperm 作為嚴格限制的缺點是,非計算性分頁的數目不能超出 maxperm 的限制,并且在系統中具有空閑內存的時候,也不能使用更多的內存。
(3)minperm 限制指出應該用于非計算性分頁的最低內存量。
(4)numperm 非計算性分頁的數目
(5)maxclient
指定應該用于緩存非計算性客戶端分頁的最大內存量的限制。因為所有非計算性客戶端分頁是非計算性永久存儲分頁總數的子集,所以 maxclient 限制必須始終小于或者等于 maxperm 限制。
在缺省情況下,maxclient 限制是嚴格的限制(vmo -p -o strict_maxclient=1)。這意味著,AIX 內核不允許非計算性的客戶端文件緩存超出 maxclient 限制的范圍(也就是說,AIX 內核不允許 numclient 超出 maxclient)。當 numclient 達到 maxclient 限制時,AIX 內核將采用特殊的、僅客戶端的模式開始分頁替換。在這種僅客戶端的模式中,AIX 分頁替換守護進程將嚴格地選擇客戶端分頁進行操作。
(6)監視系統的內存使用情況
--非計算型內存:
# vmstat -v????????????????? ?
?????? 4980736 memory pages
??????? 739175 lruable pages
??????? 432957 free pages
???????????? 1 memory pools
???????? 84650 pinned pages
????????? 80.0 maxpin percentage
????????? 20.0 minperm percentage? <<- system’s minperm% setting
????????? 80.0 maxperm percentage? <<- system’s maxperm% setting
?????????? 2.2 numperm percentage? << % of memory containing non-comp. pages
???????? 16529 file pages????????? <<- # of non-comp. pages
?????????? 0.0 compressed percentage
???????????? 0 compressed pages
?????????? 2.2 numclient percentage <<- % of memory containing non-comp. client pages
????????? 80.0 maxclient percentage <<- system’s maxclient% setting
???????? 16503 client pages???????? <<- # of client pages
???????????? 0 remote pageouts scheduled
???????????? 0 pending disk I/Os blocked with no pbuf
???????????? 0 paging space I/Os blocked with no psbuf
????????? 2484 filesystem I/Os blocked with no fsbuf
???????????? 0 client filesystem I/Os blocked with no fsbuf
???????????? 0 external pager filesystem I/Os blocked with no fsbuf
???????????? 0 Virtualized Partition Memory Page Faults
????????? 0.00 Time resolving virtualized partition memory page faults
因此,在上面的示例中,一共有 16529 個非計算性的文件分頁被映射到了內存中。這些非計算性的分頁使用了 2.2% 的內存。在這 16529 個非計算性的文件分頁中,有 16503 個是客戶端分頁。
vmstat 輸出沒有提供關于計算性文件分頁的信息。關于計算性文件分頁的信息,可以使用 svmon 命令搜集得到。
# svmon -G
?????????????? size????? inuse?????? free??????? pin??? virtual
memory?????? 786432???? 209710???? 576722???? 133537???? 188426
pg space???? 131072?????? 1121
?????????????? work?????? pers?????? clnt
pin????????? 133537????????? 0????????? 0
in use?????? 188426????????? 0????? 21284
PageSize?? PoolSize????? inuse?????? pgsp??????? pin??? virtual
s??? 4 KB???????? -???? 103966?????? 1121????? 68929????? 82682
m?? 64 KB???????? -?????? 6609????????? 0?????? 4038?????? 6609
svmon 顯示了下面三列:
?? ?work——工作存儲
?? ?pers——持久性存儲(持久性存儲分頁都是非客戶端分頁,即 JFS 分頁。)
?? ?clnt——客戶端存儲
對于每種分頁類型,svmon 將顯示下面兩行:
??????? inuse——映射到內存中的 4K 分頁的數目
??????? pin ——映射到內存中的、且固定的 4K 分頁的數目(pin 是 inuse 的子集)
?因此,在上面的示例中,一共有 188426 個工作存儲分頁映射到內存中。在這 188426 個工作存儲分頁中,有 133537 個是固定的(也就是說,不能換出的)。
示例中顯示沒有持久的存儲分頁(因為系統中沒有使用 JFS 文件系統)。一共有 21284 個客戶端存儲分頁,它們中沒有一個是固定的。
svmon 命令沒有顯示永久存儲分頁的數目,但這個數目可以由 svmon 的輸出計算得到。如前所述,永久存儲分頁的數目是持久性存儲分頁數目和客戶端存儲分頁數目的總和。因此,在上面的示例中,系統中一共有 21284 個永久存儲分頁:
0 persistent storage pages + 21284 client storage pages = 21284 permanent storage pages
svmon 所報告的信息類型與 vmstat 有一點不同。svmon 報告不同類型內存分頁的數目信息,包括工作的、持久的(即非客戶端的)和客戶端的。svmon 并沒有提供計算性分頁和非計算性分頁的對比信息。svmon 只報告每種分頁類型在內存中分頁的總數。
與此相反,vmstat 可以提供非計算性分頁和計算性分頁的對比信息。
為了說明這個區別,可以考慮上面的 svmon 輸出示例。這 21284 個客戶端分頁中的某些分頁將是計算性的,而這 21284 個客戶端分頁中剩下的那些分頁將是非計算性的。要確定這些客戶端分頁在計算性和非計算性之間的劃分,可以使用 vmstat 命令來確定這 21284 個客戶端分頁中有多少分頁是非計算性的。
轉載于:https://blog.51cto.com/ittop168/1715704
總結
- 上一篇: 【数据结构与算法】字符串匹配 BF算法
- 下一篇: 动态规划——莱文斯坦距离