内存总结
(1)lru_file_repage:
??? 當(dāng) lru_file_repage 可調(diào)參數(shù)設(shè)置為 1 時,AIX 內(nèi)核使用這個重新分頁信息來確定是否僅選擇非計算性的分頁進行操作、或者選擇計算性的和非計算性的分頁進行操作。如果計算性分頁的重新分頁速度比非計算性分頁的重新分頁速度高,那么 AIX 內(nèi)核將僅選擇非計算性的分頁進行操作(因為計算性分頁的使用更為頻繁)。如果非計算性分頁的重新分頁速度比計算性分頁的重新分頁速度高,那么 AIX 內(nèi)核將選擇計算性的分頁和非計算性的分頁進行操作。
?? ?
??? 在大多數(shù)的客戶環(huán)境中,最理想的方式是始終讓內(nèi)核只選擇非計算性的分頁進行操作,因為與對非計算性的分頁(即數(shù)據(jù)文件緩存)進行分頁相比,對計算性的分頁(例如,進程的堆棧、數(shù)據(jù)等等)進行分頁通常會對進程產(chǎn)生更大的性能開銷。因此,可以將 lru_file_repage 可調(diào)參數(shù)設(shè)置為 0。在這種情況下,當(dāng) numperm 在 minperm 和 maxperm 之間的時候,AIX 內(nèi)核始終選擇非計算性的分頁進行操作。
因此一般的需要大量計算頁的服務(wù)器(比如數(shù)據(jù)庫服務(wù)器),有兩種設(shè)置:
早先是lru_file_repage = 1(aix5的默認值),而maxperm設(shè)得盡量小,例如 maxperm%=20。
現(xiàn)在還有一種是設(shè)置 lru_file_repage = 0(aix6的默認值),而minperm% = 5, maxperm% = 90。
(2)maxperm 可調(diào)參數(shù)指出應(yīng)該用于緩存非計算性分頁的最大內(nèi)存量。
在缺省情況下,maxperm 是一個“非嚴(yán)格的”限制,這意味著在某些情況下可以超出這個限制。將 maxperm 設(shè)定為非嚴(yán)格的限制,這允許在具有可用空閑內(nèi)存的時候,可以在內(nèi)存中緩存更多的非計算性文件。通過將 strict_maxperm 可調(diào)參數(shù)設(shè)置為 1,就可以使 maxperm 限制成為“嚴(yán)格”的限制。當(dāng) maxperm 是嚴(yán)格限制的時候,即使有可供使用的空閑內(nèi)存,內(nèi)核也不允許非計算性分頁的數(shù)目超出 maxperm 的限制。因此,將 maxperm 作為嚴(yán)格限制的缺點是,非計算性分頁的數(shù)目不能超出 maxperm 的限制,并且在系統(tǒng)中具有空閑內(nèi)存的時候,也不能使用更多的內(nèi)存。
(3)minperm 限制指出應(yīng)該用于非計算性分頁的最低內(nèi)存量。
(4)numperm 非計算性分頁的數(shù)目
(5)maxclient
指定應(yīng)該用于緩存非計算性客戶端分頁的最大內(nèi)存量的限制。因為所有非計算性客戶端分頁是非計算性永久存儲分頁總數(shù)的子集,所以 maxclient 限制必須始終小于或者等于 maxperm 限制。
在缺省情況下,maxclient 限制是嚴(yán)格的限制(vmo -p -o strict_maxclient=1)。這意味著,AIX 內(nèi)核不允許非計算性的客戶端文件緩存超出 maxclient 限制的范圍(也就是說,AIX 內(nèi)核不允許 numclient 超出 maxclient)。當(dāng) numclient 達到 maxclient 限制時,AIX 內(nèi)核將采用特殊的、僅客戶端的模式開始分頁替換。在這種僅客戶端的模式中,AIX 分頁替換守護進程將嚴(yán)格地選擇客戶端分頁進行操作。
(6)監(jiān)視系統(tǒng)的內(nèi)存使用情況
--非計算型內(nèi)存:
# 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 個非計算性的文件分頁被映射到了內(nèi)存中。這些非計算性的分頁使用了 2.2% 的內(nèi)存。在這 16529 個非計算性的文件分頁中,有 16503 個是客戶端分頁。
vmstat 輸出沒有提供關(guān)于計算性文件分頁的信息。關(guān)于計算性文件分頁的信息,可以使用 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——映射到內(nèi)存中的 4K 分頁的數(shù)目
??????? pin ——映射到內(nèi)存中的、且固定的 4K 分頁的數(shù)目(pin 是 inuse 的子集)
?因此,在上面的示例中,一共有 188426 個工作存儲分頁映射到內(nèi)存中。在這 188426 個工作存儲分頁中,有 133537 個是固定的(也就是說,不能換出的)。
示例中顯示沒有持久的存儲分頁(因為系統(tǒng)中沒有使用 JFS 文件系統(tǒng))。一共有 21284 個客戶端存儲分頁,它們中沒有一個是固定的。
svmon 命令沒有顯示永久存儲分頁的數(shù)目,但這個數(shù)目可以由 svmon 的輸出計算得到。如前所述,永久存儲分頁的數(shù)目是持久性存儲分頁數(shù)目和客戶端存儲分頁數(shù)目的總和。因此,在上面的示例中,系統(tǒng)中一共有 21284 個永久存儲分頁:
0 persistent storage pages + 21284 client storage pages = 21284 permanent storage pages
svmon 所報告的信息類型與 vmstat 有一點不同。svmon 報告不同類型內(nèi)存分頁的數(shù)目信息,包括工作的、持久的(即非客戶端的)和客戶端的。svmon 并沒有提供計算性分頁和非計算性分頁的對比信息。svmon 只報告每種分頁類型在內(nèi)存中分頁的總數(shù)。
與此相反,vmstat 可以提供非計算性分頁和計算性分頁的對比信息。
為了說明這個區(qū)別,可以考慮上面的 svmon 輸出示例。這 21284 個客戶端分頁中的某些分頁將是計算性的,而這 21284 個客戶端分頁中剩下的那些分頁將是非計算性的。要確定這些客戶端分頁在計算性和非計算性之間的劃分,可以使用 vmstat 命令來確定這 21284 個客戶端分頁中有多少分頁是非計算性的。
轉(zhuǎn)載于:https://blog.51cto.com/ittop168/1715704
總結(jié)
- 上一篇: 【数据结构与算法】字符串匹配 BF算法
- 下一篇: 动态规划——莱文斯坦距离