今天就跟大家聊聊有關(guān)如何使用vmstat命令確定內(nèi)存使用情況,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)站營銷推廣、網(wǎng)站開發(fā)設(shè)計,對服務成都履帶攪拌車等多個行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗。創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司成立于2013年,提供專業(yè)網(wǎng)站制作報價服務,我們深知市場的競爭激烈,認真對待每位客戶,為客戶提供賞心悅目的作品。 與客戶共同發(fā)展進步,是我們永遠的責任!
vmstat 命令總結(jié)了系統(tǒng)中所有進程使用的總活動虛擬內(nèi)存,以及空閑列表上實內(nèi)存頁幀的數(shù)量。
活動的虛擬內(nèi)存定義為虛擬內(nèi)存中實際可以得到的工作段頁面的數(shù)量。這個數(shù)字可能大于機器中的實際頁幀數(shù),因為一些活動的虛擬內(nèi)存頁可能已寫出到調(diào)頁空間中。
當確定系統(tǒng)內(nèi)存是否短缺或者是否需要進行某種內(nèi)存調(diào)整時,在設(shè)定的時間間隔內(nèi)運行 vmstat 命令,并檢查結(jié)果報告中的 pi 和 po 列。這兩列表明了每秒調(diào)頁空間頁面調(diào)入的數(shù)量和每秒調(diào)頁空間頁面調(diào)出的數(shù)量。如果這些值經(jīng)常為非零值,說明可能存在內(nèi)存瓶頸。偶爾出現(xiàn)的非零值不用在意,因為頁面調(diào)度是虛擬內(nèi)存的主要原理。
# vmstat 2 10 kthr memory page faults cpu ----- ----------- ------------------------ ------------ ----------- r b avm fre re pi po fr sr cy in sy cs us sy id wa 1 3 113726 124 0 14 6 151 600 0 521 5533 816 23 13 7 57 0 3 113643 346 0 2 14 208 690 0 585 2201 866 16 9 2 73 0 3 113659 135 0 2 2 108 323 0 516 1563 797 25 7 2 66 0 2 113661 122 0 3 2 120 375 0 527 1622 871 13 7 2 79 0 3 113662 128 0 10 3 134 432 0 644 1434 948 22 7 4 67 1 5 113858 238 0 35 1 146 422 0 599 5103 903 40 16 0 44 0 3 113969 127 0 5 10 153 529 0 565 2006 823 19 8 3 70 0 3 113983 125 0 33 5 153 424 0 559 2165 921 25 8 4 63 0 3 113682 121 0 20 9 154 470 0 608 1569 1007 15 8 0 77 0 4 113701 124 0 3 29 228 635 0 674 1730 1086 18 9 0 73
在上述示例輸出中,請注意輸出中的較高的 I/O 等待率以及阻塞隊列中的線程數(shù)。其他 I/O 活動可能會造成 I/O 等待,但是在這種特殊情況下,I/O 等待最大可能是由于與頁面空間之間的頁面調(diào)進調(diào)出造成的。
要察看系統(tǒng)的 VMM 是否有性能問題,請檢查 memory 和 page 下的列:
memory
提供了實際和虛擬內(nèi)存的信息。
avm
活動虛擬內(nèi)存(avm)列代表在收集 vmstat 樣本時存在的活動虛擬內(nèi)存頁數(shù)。缺省策略為延遲頁面空間策略。在該策略下,avm 的值可能比使用的調(diào)頁空間頁面數(shù)要高。avm 統(tǒng)計信息并不包含文件頁面。
fre
fre 列顯示出空閑內(nèi)存頁面的平均數(shù)量。一個頁面是實內(nèi)存中的 4 KB 的區(qū)域。系統(tǒng)維護內(nèi)存頁面的緩沖區(qū),稱為空閑列表。當 VMM 需要空間時可以很方便地訪問此空閑列表。VMM 保留在空閑列表上的最少頁數(shù)由 vmo 命令的 minfree 參數(shù)決定。
當一個應用程序終止時,它所有的工作頁面會立即返回給空閑列表。然而,它的永久頁面(或文件)仍然在 RAM 中,不會添加回空閑列表中,直到由 VMM 竊取用于其他程序為止。如果刪除相應的文件,也會釋放其永久頁面。
由于這個原因,fre 的值可能不表示進程可以方便使用所有實內(nèi)存。如果需要頁幀,那與已終止應用程序相關(guān)的永久頁面將會最先移交給另一個程序。
如果 fre 的值遠大于 maxfree 的值,那么不太可能出現(xiàn)系統(tǒng)顛簸。系統(tǒng)顛簸意味著系統(tǒng)一直在進行頁面調(diào)進調(diào)出。然而,如果系統(tǒng)正在經(jīng)歷顛簸,可以肯定 fre 值很小。
page
關(guān)于缺頁故障和頁面調(diào)度活動的信息。它們是一段時間間隔的平均值并以秒為單位給出。
re
注: 這一欄當前不受支持。
pi
pi 列詳細描述了從調(diào)頁空間調(diào)入的頁數(shù)。調(diào)頁空間是駐留在磁盤上的虛擬內(nèi)存的一部分。當內(nèi)存過量使用時,它用作溢出。調(diào)頁空間由用于存儲從實內(nèi)存中竊取到的工作組頁面的邏輯卷組成。當進程訪問一個竊取頁時,產(chǎn)生了一個缺頁故障,這一頁必須從調(diào)頁空間讀入內(nèi)存。
因為硬件配置、軟件和應用程序的不同,沒有絕對的數(shù)字可以用以參考。這個字段作為調(diào)頁空間活動的關(guān)鍵指示符。如果發(fā)生頁面調(diào)進,該頁面就一定有一個較早的頁面調(diào)出。在內(nèi)存受限的環(huán)境下也有可能每一次頁面調(diào)進會迫使另一個頁面被竊取而頁面調(diào)出。
po
po 一欄顯示了調(diào)出到調(diào)頁空間的頁面數(shù)(速率)。無論什么時候竊取工作存儲器的一頁,如果它仍未駐留在調(diào)頁空間中或已被修改,那它會被寫入調(diào)頁空間。如果不被再次訪問,它會留在頁面調(diào)度設(shè)備中直到進程終止或放棄空間。如果包含在出故障頁面中的后續(xù)地址引用導致缺頁故障,那么這些頁面將會由系統(tǒng)個別調(diào)進。當一個進程正常終止,任何分配給該進程的調(diào)頁空間將被釋放。如果系統(tǒng)讀入大量的永久頁面,您會發(fā)覺 po 欄里增加了而在 pi 欄里沒有相應增加。這并不一定會造成系統(tǒng)顛簸,但可以保證對于應用程序數(shù)據(jù)存取模式的調(diào)查。
fr
在一定時間間隔內(nèi)根據(jù)頁面替換算法每秒所釋放的頁數(shù)。當 VMM 頁面替換例程掃描頁面幀表(Page Frame. Table,PFT)時,它使用一些條件選取要竊取的頁面以插入到可用內(nèi)存幀的空閑列表中。該條件包含了兩種頁面,工作(計算的)和文件(永久的)頁面。就因為頁面已經(jīng)釋放,并不意味著發(fā)生了任何 I/O。例如,如果某個永久存儲(文件)頁面尚未修改,它就不會被寫回磁盤。如果 I/O 不是必需的,那么要求最小的系統(tǒng)資源來釋放頁面。
sr
在一定時間間隔內(nèi)根據(jù)頁面替換算法每秒所檢查的頁面數(shù)。頁面替換算法在可以竊取足夠的頁面以滿足頁面替換線程的需要之前可能不得不掃描許多頁面幀。sr 值比 fr值高得越多,頁面替換算法查找要竊取的合格頁面就越困難。
cy
時鐘算法中每秒的周期數(shù)。VMM 使用一種叫時鐘算法的技術(shù)來選擇要替換的頁面。這種技術(shù)利用了每一個頁面的訪問位來指示哪些頁最近曾被使用(訪問)過。調(diào)用頁面竊取程序例程時,它遍歷整個 PFT,檢查每一頁的訪問位。
cy 一欄顯示了每秒頁面替換代碼掃描了 PFT 多少次。因為插入空閑列表可以不需要完全掃描 PFT,并且因為所有的 vmstat 字段報告為整數(shù),這一字段通常為 0。
確定系統(tǒng)的適當 RAM 數(shù)量的一種方法是查看 vmstat 命令報告的 avm 的最大值。將該數(shù)字乘以 4K 得到字節(jié)數(shù),然后將其與系統(tǒng)的 RAM 字節(jié)數(shù)比較。理想情況下,avm 應該小于總 RAM。如果不是,可能會出現(xiàn)一些虛擬內(nèi)存頁面調(diào)度量。有多少頁面調(diào)度發(fā)生取決于兩個值之間的差值。記住,虛擬內(nèi)存的概念是提供給我們尋址大于實內(nèi)存容量的能力(一些在 RAM 內(nèi)存中,而另一些在調(diào)頁空間中)。但是如果虛擬內(nèi)存遠大于實內(nèi)存,可能造成過度的頁面調(diào)度,從而導致延時。如果 avm 小于 RAM,那么當 RAM 中填滿文件頁時就會引起調(diào)頁空間的頁面調(diào)度。這種情況下,調(diào)整 minperm、maxperm 和 maxclient 的值可以減少調(diào)頁空間的頁面調(diào)度量。
看完上述內(nèi)容,你們對如何使用vmstat命令確定內(nèi)存使用情況有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。