您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關如何使用vmstat命令確定內存使用情況,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
vmstat 命令總結了系統中所有進程使用的總活動虛擬內存,以及空閑列表上實內存頁幀的數量。
活動的虛擬內存定義為虛擬內存中實際可以得到的工作段頁面的數量。這個數字可能大于機器中的實際頁幀數,因為一些活動的虛擬內存頁可能已寫出到調頁空間中。
當確定系統內存是否短缺或者是否需要進行某種內存調整時,在設定的時間間隔內運行 vmstat 命令,并檢查結果報告中的 pi 和 po 列。這兩列表明了每秒調頁空間頁面調入的數量和每秒調頁空間頁面調出的數量。如果這些值經常為非零值,說明可能存在內存瓶頸。偶爾出現的非零值不用在意,因為頁面調度是虛擬內存的主要原理。
# 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 等待率以及阻塞隊列中的線程數。其他 I/O 活動可能會造成 I/O 等待,但是在這種特殊情況下,I/O 等待最大可能是由于與頁面空間之間的頁面調進調出造成的。
要察看系統的 VMM 是否有性能問題,請檢查 memory 和 page 下的列:
memory
提供了實際和虛擬內存的信息。
avm
活動虛擬內存(avm)列代表在收集 vmstat 樣本時存在的活動虛擬內存頁數。缺省策略為延遲頁面空間策略。在該策略下,avm 的值可能比使用的調頁空間頁面數要高。avm 統計信息并不包含文件頁面。
fre
fre 列顯示出空閑內存頁面的平均數量。一個頁面是實內存中的 4 KB 的區域。系統維護內存頁面的緩沖區,稱為空閑列表。當 VMM 需要空間時可以很方便地訪問此空閑列表。VMM 保留在空閑列表上的最少頁數由 vmo 命令的 minfree 參數決定。
當一個應用程序終止時,它所有的工作頁面會立即返回給空閑列表。然而,它的永久頁面(或文件)仍然在 RAM 中,不會添加回空閑列表中,直到由 VMM 竊取用于其他程序為止。如果刪除相應的文件,也會釋放其永久頁面。
由于這個原因,fre 的值可能不表示進程可以方便使用所有實內存。如果需要頁幀,那與已終止應用程序相關的永久頁面將會最先移交給另一個程序。
如果 fre 的值遠大于 maxfree 的值,那么不太可能出現系統顛簸。系統顛簸意味著系統一直在進行頁面調進調出。然而,如果系統正在經歷顛簸,可以肯定 fre 值很小。
page
關于缺頁故障和頁面調度活動的信息。它們是一段時間間隔的平均值并以秒為單位給出。
re
注: 這一欄當前不受支持。
pi
pi 列詳細描述了從調頁空間調入的頁數。調頁空間是駐留在磁盤上的虛擬內存的一部分。當內存過量使用時,它用作溢出。調頁空間由用于存儲從實內存中竊取到的工作組頁面的邏輯卷組成。當進程訪問一個竊取頁時,產生了一個缺頁故障,這一頁必須從調頁空間讀入內存。
因為硬件配置、軟件和應用程序的不同,沒有絕對的數字可以用以參考。這個字段作為調頁空間活動的關鍵指示符。如果發生頁面調進,該頁面就一定有一個較早的頁面調出。在內存受限的環境下也有可能每一次頁面調進會迫使另一個頁面被竊取而頁面調出。
po
po 一欄顯示了調出到調頁空間的頁面數(速率)。無論什么時候竊取工作存儲器的一頁,如果它仍未駐留在調頁空間中或已被修改,那它會被寫入調頁空間。如果不被再次訪問,它會留在頁面調度設備中直到進程終止或放棄空間。如果包含在出故障頁面中的后續地址引用導致缺頁故障,那么這些頁面將會由系統個別調進。當一個進程正常終止,任何分配給該進程的調頁空間將被釋放。如果系統讀入大量的永久頁面,您會發覺 po 欄里增加了而在 pi 欄里沒有相應增加。這并不一定會造成系統顛簸,但可以保證對于應用程序數據存取模式的調查。
fr
在一定時間間隔內根據頁面替換算法每秒所釋放的頁數。當 VMM 頁面替換例程掃描頁面幀表(Page Frame. Table,PFT)時,它使用一些條件選取要竊取的頁面以插入到可用內存幀的空閑列表中。該條件包含了兩種頁面,工作(計算的)和文件(永久的)頁面。就因為頁面已經釋放,并不意味著發生了任何 I/O。例如,如果某個永久存儲(文件)頁面尚未修改,它就不會被寫回磁盤。如果 I/O 不是必需的,那么要求最小的系統資源來釋放頁面。
sr
在一定時間間隔內根據頁面替換算法每秒所檢查的頁面數。頁面替換算法在可以竊取足夠的頁面以滿足頁面替換線程的需要之前可能不得不掃描許多頁面幀。sr 值比 fr值高得越多,頁面替換算法查找要竊取的合格頁面就越困難。
cy
時鐘算法中每秒的周期數。VMM 使用一種叫時鐘算法的技術來選擇要替換的頁面。這種技術利用了每一個頁面的訪問位來指示哪些頁最近曾被使用(訪問)過。調用頁面竊取程序例程時,它遍歷整個 PFT,檢查每一頁的訪問位。
cy 一欄顯示了每秒頁面替換代碼掃描了 PFT 多少次。因為插入空閑列表可以不需要完全掃描 PFT,并且因為所有的 vmstat 字段報告為整數,這一字段通常為 0。
確定系統的適當 RAM 數量的一種方法是查看 vmstat 命令報告的 avm 的最大值。將該數字乘以 4K 得到字節數,然后將其與系統的 RAM 字節數比較。理想情況下,avm 應該小于總 RAM。如果不是,可能會出現一些虛擬內存頁面調度量。有多少頁面調度發生取決于兩個值之間的差值。記住,虛擬內存的概念是提供給我們尋址大于實內存容量的能力(一些在 RAM 內存中,而另一些在調頁空間中)。但是如果虛擬內存遠大于實內存,可能造成過度的頁面調度,從而導致延時。如果 avm 小于 RAM,那么當 RAM 中填滿文件頁時就會引起調頁空間的頁面調度。這種情況下,調整 minperm、maxperm 和 maxclient 的值可以減少調頁空間的頁面調度量。
看完上述內容,你們對如何使用vmstat命令確定內存使用情況有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。