溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用vmstat命令確定內(nèi)存使用情況

發(fā)布時(shí)間:2021-11-05 16:10:25 來(lái)源:億速云 閱讀:317 作者:柒染 欄目:建站服務(wù)器

今天就跟大家聊聊有關(guān)如何使用vmstat命令確定內(nèi)存使用情況,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

vmstat 命令總結(jié)了系統(tǒng)中所有進(jìn)程使用的總活動(dòng)虛擬內(nèi)存,以及空閑列表上實(shí)內(nèi)存頁(yè)幀的數(shù)量。

活動(dòng)的虛擬內(nèi)存定義為虛擬內(nèi)存中實(shí)際可以得到的工作段頁(yè)面的數(shù)量。這個(gè)數(shù)字可能大于機(jī)器中的實(shí)際頁(yè)幀數(shù),因?yàn)橐恍┗顒?dòng)的虛擬內(nèi)存頁(yè)可能已寫出到調(diào)頁(yè)空間中。

當(dāng)確定系統(tǒng)內(nèi)存是否短缺或者是否需要進(jìn)行某種內(nèi)存調(diào)整時(shí),在設(shè)定的時(shí)間間隔內(nèi)運(yùn)行 vmstat 命令,并檢查結(jié)果報(bào)告中的 pi 和 po 列。這兩列表明了每秒調(diào)頁(yè)空間頁(yè)面調(diào)入的數(shù)量和每秒調(diào)頁(yè)空間頁(yè)面調(diào)出的數(shù)量。如果這些值經(jīng)常為非零值,說明可能存在內(nèi)存瓶頸。偶爾出現(xiàn)的非零值不用在意,因?yàn)轫?yè)面調(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

在上述示例輸出中,請(qǐng)注意輸出中的較高的 I/O 等待率以及阻塞隊(duì)列中的線程數(shù)。其他 I/O 活動(dòng)可能會(huì)造成 I/O 等待,但是在這種特殊情況下,I/O 等待最大可能是由于與頁(yè)面空間之間的頁(yè)面調(diào)進(jìn)調(diào)出造成的。

要察看系統(tǒng)的 VMM 是否有性能問題,請(qǐng)檢查 memory 和 page 下的列:

  • memory

    提供了實(shí)際和虛擬內(nèi)存的信息。

    • avm

      活動(dòng)虛擬內(nèi)存(avm)列代表在收集 vmstat 樣本時(shí)存在的活動(dòng)虛擬內(nèi)存頁(yè)數(shù)。缺省策略為延遲頁(yè)面空間策略。在該策略下,avm 的值可能比使用的調(diào)頁(yè)空間頁(yè)面數(shù)要高。avm 統(tǒng)計(jì)信息并不包含文件頁(yè)面。

    • fre

      fre 列顯示出空閑內(nèi)存頁(yè)面的平均數(shù)量。一個(gè)頁(yè)面是實(shí)內(nèi)存中的 4 KB 的區(qū)域。系統(tǒng)維護(hù)內(nèi)存頁(yè)面的緩沖區(qū),稱為空閑列表。當(dāng) VMM 需要空間時(shí)可以很方便地訪問此空閑列表。VMM 保留在空閑列表上的最少頁(yè)數(shù)由 vmo 命令的 minfree 參數(shù)決定。

      當(dāng)一個(gè)應(yīng)用程序終止時(shí),它所有的工作頁(yè)面會(huì)立即返回給空閑列表。然而,它的永久頁(yè)面(或文件)仍然在 RAM 中,不會(huì)添加回空閑列表中,直到由 VMM 竊取用于其他程序?yàn)橹?。如果刪除相應(yīng)的文件,也會(huì)釋放其永久頁(yè)面。

      由于這個(gè)原因,fre 的值可能不表示進(jìn)程可以方便使用所有實(shí)內(nèi)存。如果需要頁(yè)幀,那與已終止應(yīng)用程序相關(guān)的永久頁(yè)面將會(huì)最先移交給另一個(gè)程序。

      如果 fre 的值遠(yuǎn)大于 maxfree 的值,那么不太可能出現(xiàn)系統(tǒng)顛簸。系統(tǒng)顛簸意味著系統(tǒng)一直在進(jìn)行頁(yè)面調(diào)進(jìn)調(diào)出。然而,如果系統(tǒng)正在經(jīng)歷顛簸,可以肯定 fre 值很小。

  • page

    關(guān)于缺頁(yè)故障和頁(yè)面調(diào)度活動(dòng)的信息。它們是一段時(shí)間間隔的平均值并以秒為單位給出。

    • re

      注: 這一欄當(dāng)前不受支持。

    • pi

      pi 列詳細(xì)描述了從調(diào)頁(yè)空間調(diào)入的頁(yè)數(shù)。調(diào)頁(yè)空間是駐留在磁盤上的虛擬內(nèi)存的一部分。當(dāng)內(nèi)存過量使用時(shí),它用作溢出。調(diào)頁(yè)空間由用于存儲(chǔ)從實(shí)內(nèi)存中竊取到的工作組頁(yè)面的邏輯卷組成。當(dāng)進(jìn)程訪問一個(gè)竊取頁(yè)時(shí),產(chǎn)生了一個(gè)缺頁(yè)故障,這一頁(yè)必須從調(diào)頁(yè)空間讀入內(nèi)存。

      因?yàn)橛布渲?、軟件和?yīng)用程序的不同,沒有絕對(duì)的數(shù)字可以用以參考。這個(gè)字段作為調(diào)頁(yè)空間活動(dòng)的關(guān)鍵指示符。如果發(fā)生頁(yè)面調(diào)進(jìn),該頁(yè)面就一定有一個(gè)較早的頁(yè)面調(diào)出。在內(nèi)存受限的環(huán)境下也有可能每一次頁(yè)面調(diào)進(jìn)會(huì)迫使另一個(gè)頁(yè)面被竊取而頁(yè)面調(diào)出。

    • po

      po 一欄顯示了調(diào)出到調(diào)頁(yè)空間的頁(yè)面數(shù)(速率)。無(wú)論什么時(shí)候竊取工作存儲(chǔ)器的一頁(yè),如果它仍未駐留在調(diào)頁(yè)空間中或已被修改,那它會(huì)被寫入調(diào)頁(yè)空間。如果不被再次訪問,它會(huì)留在頁(yè)面調(diào)度設(shè)備中直到進(jìn)程終止或放棄空間。如果包含在出故障頁(yè)面中的后續(xù)地址引用導(dǎo)致缺頁(yè)故障,那么這些頁(yè)面將會(huì)由系統(tǒng)個(gè)別調(diào)進(jìn)。當(dāng)一個(gè)進(jìn)程正常終止,任何分配給該進(jìn)程的調(diào)頁(yè)空間將被釋放。如果系統(tǒng)讀入大量的永久頁(yè)面,您會(huì)發(fā)覺 po 欄里增加了而在 pi 欄里沒有相應(yīng)增加。這并不一定會(huì)造成系統(tǒng)顛簸,但可以保證對(duì)于應(yīng)用程序數(shù)據(jù)存取模式的調(diào)查。

    • fr

      在一定時(shí)間間隔內(nèi)根據(jù)頁(yè)面替換算法每秒所釋放的頁(yè)數(shù)。當(dāng) VMM 頁(yè)面替換例程掃描頁(yè)面幀表(Page Frame. Table,PFT)時(shí),它使用一些條件選取要竊取的頁(yè)面以插入到可用內(nèi)存幀的空閑列表中。該條件包含了兩種頁(yè)面,工作(計(jì)算的)和文件(永久的)頁(yè)面。就因?yàn)轫?yè)面已經(jīng)釋放,并不意味著發(fā)生了任何 I/O。例如,如果某個(gè)永久存儲(chǔ)(文件)頁(yè)面尚未修改,它就不會(huì)被寫回磁盤。如果 I/O 不是必需的,那么要求最小的系統(tǒng)資源來(lái)釋放頁(yè)面。

    • sr

      在一定時(shí)間間隔內(nèi)根據(jù)頁(yè)面替換算法每秒所檢查的頁(yè)面數(shù)。頁(yè)面替換算法在可以竊取足夠的頁(yè)面以滿足頁(yè)面替換線程的需要之前可能不得不掃描許多頁(yè)面幀。sr 值比 fr值高得越多,頁(yè)面替換算法查找要竊取的合格頁(yè)面就越困難。

    • cy

      時(shí)鐘算法中每秒的周期數(shù)。VMM 使用一種叫時(shí)鐘算法的技術(shù)來(lái)選擇要替換的頁(yè)面。這種技術(shù)利用了每一個(gè)頁(yè)面的訪問位來(lái)指示哪些頁(yè)最近曾被使用(訪問)過。調(diào)用頁(yè)面竊取程序例程時(shí),它遍歷整個(gè) PFT,檢查每一頁(yè)的訪問位。

      cy 一欄顯示了每秒頁(yè)面替換代碼掃描了 PFT 多少次。因?yàn)椴迦肟臻e列表可以不需要完全掃描 PFT,并且因?yàn)樗械?nbsp;vmstat 字段報(bào)告為整數(shù),這一字段通常為 0。

確定系統(tǒng)的適當(dāng) RAM 數(shù)量的一種方法是查看 vmstat 命令報(bào)告的 avm 的最大值。將該數(shù)字乘以 4K 得到字節(jié)數(shù),然后將其與系統(tǒng)的 RAM 字節(jié)數(shù)比較。理想情況下,avm 應(yīng)該小于總 RAM。如果不是,可能會(huì)出現(xiàn)一些虛擬內(nèi)存頁(yè)面調(diào)度量。有多少頁(yè)面調(diào)度發(fā)生取決于兩個(gè)值之間的差值。記住,虛擬內(nèi)存的概念是提供給我們尋址大于實(shí)內(nèi)存容量的能力(一些在 RAM 內(nèi)存中,而另一些在調(diào)頁(yè)空間中)。但是如果虛擬內(nèi)存遠(yuǎn)大于實(shí)內(nèi)存,可能造成過度的頁(yè)面調(diào)度,從而導(dǎo)致延時(shí)。如果 avm 小于 RAM,那么當(dāng) RAM 中填滿文件頁(yè)時(shí)就會(huì)引起調(diào)頁(yè)空間的頁(yè)面調(diào)度。這種情況下,調(diào)整 minperm、maxperm 和 maxclient 的值可以減少調(diào)頁(yè)空間的頁(yè)面調(diào)度量。

看完上述內(nèi)容,你們對(duì)如何使用vmstat命令確定內(nèi)存使用情況有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI