使用 vmstat 命令確定記憶體使用情況
vmstat 命令總結了系統中所有程式使用的總活動虛擬記憶體,以及空閒列表上實記憶體頁幀的數量。
活動的虛擬記憶體定義為虛擬記憶體中實際可以得到的工作段頁面的數量。這個數字可能大於機器中的實際頁幀數,因為一些活動的虛擬記憶體頁可能已寫出到調頁空間中。
# 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 值很小。
- avm
- 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。
- re
確定系統的適當 RAM 數量的一種方法是檢視 vmstat 命令報告的 avm 的最大值。將該數字乘以 4K 得到位元組數,然後將其與系統的 RAM 位元組數比較。理想情況下,avm 應該小於總 RAM。如果不是,可能會出現一些虛擬記憶體頁面排程量。有多少頁面排程發生取決於兩個值之間的差值。記住,虛擬記憶體的概念是提供給我們定址大於實記憶體容量的能力(一些在 RAM 記憶體中,而另一些在調頁空間中)。但是如果虛擬記憶體遠大於實記憶體,可能造成過度的頁面排程,從而導致延時。如果 avm 小於 RAM,那麼當 RAM 中填滿檔案頁時就會引起調頁空間的頁面排程。這種情況下,調整 minperm、maxperm 和 maxclient 的值可以減少調頁空間的頁面排程量。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31520497/viewspace-2156799/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用 top 命令瞭解 Fedora 的記憶體使用情況記憶體
- SOLARISE檢視記憶體使用情況記憶體
- 檢查 Linux 中記憶體使用情況的 8 條命令Linux記憶體
- Linux檢視伺服器記憶體使用情況的命令Linux伺服器記憶體
- Mongodb記憶體管理和使用情況情況查詢MongoDB記憶體
- linux下檢視記憶體使用情況Linux記憶體
- 使用show engine innodb status 檢視記憶體使用情況記憶體
- Linux效能優化:記憶體使用情況分析Linux優化記憶體
- Linux檢視CPU和記憶體使用情況Linux記憶體
- 檢測Linux記憶體使用情況的free命令的10個例子Linux記憶體
- Redis 記憶體突增時,如何定量分析其記憶體使用情況Redis記憶體
- 如何觀察程式的記憶體佔用情況記憶體
- Linux如何通過命令檢視伺服器的記憶體條使用情況Linux伺服器記憶體
- Linux 檢視記憶體使用情況的幾種方法Linux記憶體
- 如何檢查 Android 應用的記憶體使用情況Android記憶體
- linux 檢視某個程序和服務記憶體佔用情況命令Linux記憶體
- 檢視LINUX程式記憶體佔用情況Linux記憶體
- 監控 cpu 記憶體 網路卡的使用情況的一個命令 比較實用記憶體
- obukhov/redis-inventory: 分析redis記憶體使用情況的CLI工具Redis記憶體
- java程式碼實現檢視Tomcat記憶體使用情況JavaTomcat記憶體
- Linux檢視磁碟目錄記憶體空間使用情況Linux記憶體
- Android最佳效能實踐(2):分析記憶體的使用情況Android記憶體
- PowerShell 指令碼來監控 CPU、記憶體和磁碟使用情況:指令碼記憶體
- 記憶體分配的確定記憶體
- 用 Bash 指令碼監控 Linux 上的記憶體使用情況指令碼Linux記憶體
- JRockit jstat 檢視系統記憶體資源使用情況JS記憶體
- 使用 ps、vmstat、topas 等通用工具觀察 AIX 作業系統記憶體使用狀況AI作業系統記憶體
- 總結Linux下檢視記憶體使用情況的多種方法Linux記憶體
- Linux系統下分析記憶體使用情況的管理工具Linux記憶體
- 監控 Python 記憶體使用情況和程式碼執行時間!Python記憶體
- 檢視 Linux 系統中程式和使用者的記憶體使用情況Linux記憶體
- Linux 命令使用筆記【vmstat】Linux筆記
- Linux技術——linux下檢視記憶體和CPU的使用情況Linux記憶體
- 在Linux中,如何檢查系統的CPU和記憶體使用情況?Linux記憶體
- 如何使用 Bash 指令碼從 SAR 報告中獲取 CPU 和記憶體使用情況指令碼記憶體
- Linux vmstat 命令 - 報告虛擬記憶體統計的工具Linux記憶體
- 檢視主機的記憶體使用情 (轉)記憶體
- linux系統使用vmstat命令顯示虛擬記憶體狀態的方法教程Linux記憶體