Linux vmstat 命令 - 報告虛擬記憶體統計的工具
眾所周知,計算機必須有稱之為RAM(隨機訪問記憶體)的儲存器使得計算機工作。RAM指的是插在計算機主機板上的物理儲存。這裡的RAM被用於載入像瀏覽器、文書處理器這類的程式,實際上,你使用的程式都執行在記憶體上。
讓我們假設你有2GB的記憶體。當你在執行作業系統時,你的可用記憶體可能只有1.5GB。接著你使用了大量的程式。當記憶體使用滿之後,你可能再也無法載入更多的程式。淺顯地說,計算機可能會說:"抱歉,你不能在執行更多的程式了,如果你還要執行其他的程式請先關閉一些程式。"
為了解決這個問題,包括Linux在內的各種作業系統使用了一個稱之為虛擬記憶體的方法。這個方法會搜尋最近不在使用的程式的記憶體區域,接著將它們複製到計算機硬碟上。這會騰出一些剩餘記憶體空間給你有機會執行更多的程式。
為了監視虛擬記憶體的活動,我們使用vmstat工具。
什麼是 vmstat
vmstat是一個提供報告虛擬記憶體統計的工具。它包括了系統記憶體、交換和實時處理器利用率。
如何執行 vmstat
和mpstat一樣,vmstat包含在sysstat包中。如果你還沒有,請安裝sysstat包。
為了執行vmstat,只需在控制檯輸入vmstat。不帶引數執行vmstat會顯示vmstat的預設結果。
讓我們看下如何瞭解vmstat提供的資訊:
Procs
procs有 r列和b列。r列代表等待訪問CPU的程式數量。而b列意味著睡眠程式的數量。在這些列的下面,是它們的值。從上面的截圖中,我門有2個程式正在等待訪問CPU,0個睡眠程式。
Memory
memory有swpd、 free、 buff 和 cache 這些列。這些資訊和命令free -m相同。swpd列顯示了有多少記憶體已經被交換到了交換檔案或者磁碟。free列顯示了未分配的可用記憶體。buff列顯示了使用中的記憶體。cache列顯示了有多少記憶體可以被交換到交換檔案或者磁碟上如果一些應用需要他們。
Swap
swap顯示了從交換系統上傳送或取回了多少記憶體。si列告訴我們每秒有多少記憶體被從swap移到真實記憶體中(In)。so列告訴我們每秒有多少記憶體被從真實記憶體移到swap中(Out)。
I/O
io依據塊的讀寫顯示了每秒輸入輸出的活動。bi列告訴我們收到的塊數量,bo列告訴我們傳送的塊數量。
System
system顯示了每秒的系統運算元量。in列顯示了系統每秒被中斷的數量。cs列顯示了系統為了處理所以任務而上下文切換的數量。
CPU
CPU告訴了我們CPU資源的使用情況。us列顯示了處理器在非核心程式消耗的時間。sy列顯示了處理器在核心相關任務上消耗的時間。id列顯示了處理器的空閒時間。wa列顯示了處理器在等待IO操作完成以繼續處理任務上的時間。
按間隔時間執行vmstat
作為一個統計工具,使用vmstat最好的方法是使用間隔時間。你可以間斷地捕捉系統狀態。讓我假設以5秒的間隔執行vmstat。只需要在你的控制檯中輸入vmstat 5就行。
命令將會每5秒執行一次,直到你按下Ctrl-C來終止它。你也可以使用第二個引數來控制vmstat執行的次數。
上面的命令會以5秒的間隔執行7次vmstat。
顯示活躍和非活躍記憶體
要這麼做,你可以在vmstat後加入-a選項。這是個示例。
顯示磁碟統計資料總結
如果你想,vmstat也可以列印系統磁碟活動統計。使用-D選項就行。
顯示單位
你可以選擇你想列印的顯示單位字元。在-S後跟上k (小寫,1000)、 K (大寫,1024)、 m (小寫,1000000)、 M (大寫,1048576) 位元組. 如果你不想選擇單位,預設使用的是K (1024)。
顯示某個磁碟分割槽的詳細統計資料
要這麼做,你可以使用-p選項跟上裝置名。這裡有個例子。
檔案
vmstat實際上是使用這些檔案獲取的資料。
/proc/meminfo /proc/stat /proc/*/stat
總結
如果你感覺系統執行超出記憶體了,在你增加實體記憶體前,這個工具可以幫助你確定問題的根本原因。通常上,你可以在控制檯中輸入man vmstat獲取更多的關於vmstat的詳細資訊,這會為你顯示vmstat的手冊頁。
via: http://linoxide.com/linux-command/linux-vmstat-command-tool-report-virtual-memory-statistics/
相關文章
- linux系統使用vmstat命令顯示虛擬記憶體狀態的方法教程Linux記憶體
- Linux 虛擬記憶體Linux記憶體
- Linux 命令使用筆記【vmstat】Linux筆記
- Linux 虛擬記憶體引數配置Linux記憶體
- 詳細理解Linux虛擬記憶體Linux記憶體
- 使用 vmstat 命令確定記憶體使用情況記憶體
- 計算機作業系統——虛擬記憶體與實體記憶體計算機作業系統記憶體
- 虛擬記憶體系統——瞭解記憶體的工作原理記憶體
- 為什麼 Linux 需要虛擬記憶體Linux記憶體
- linux伺服器增加虛擬記憶體Linux伺服器記憶體
- 聊聊虛擬記憶體記憶體
- win10怎麼清除虛擬記憶體 win10系統虛擬記憶體清理的辦法Win10記憶體
- win10怎麼加虛擬記憶體_win10系統增加虛擬記憶體教程Win10記憶體
- 【Java基礎】實體記憶體&虛擬記憶體Java記憶體
- 5.虛擬記憶體記憶體
- Linux記憶體不夠了?看看如何開啟虛擬記憶體增加記憶體使用量Linux記憶體
- 虛擬記憶體有什麼用 虛擬記憶體不足怎麼解決記憶體
- Linux vmstat命令基本使用Linux
- win10 8g記憶體還需要虛擬記憶體嗎 win10系統8g記憶體怎麼分配虛擬記憶體Win10記憶體
- 【原創】Linux虛擬化KVM-Qemu分析(五)之記憶體虛擬化Linux記憶體
- Linux設定虛擬記憶體教學和實戰Linux記憶體
- PostgreSQL 原始碼解讀(226)- Linux Kernel(虛擬記憶體)SQL原始碼Linux記憶體
- 虛擬記憶體(待補充)記憶體
- win11系統設定虛擬記憶體記憶體
- windows10系統如何增加虛擬記憶體Windows記憶體
- 在Linux中,什麼是虛擬記憶體?它是如何工作的?Linux記憶體
- 記憶體管理兩部曲之虛擬記憶體管理記憶體
- 虛擬記憶體對 OI 的影響記憶體
- win10怎麼刪除虛擬記憶體 刪除win10虛擬記憶體的方法Win10記憶體
- win10怎樣刪虛擬記憶體_Win10虛擬記憶體如何關閉Win10記憶體
- 虛擬機器之linux系統命令虛擬機Linux
- JAVA 虛擬機器可用記憶體Java虛擬機記憶體
- Ubuntu 新增虛擬記憶體檔案Ubuntu記憶體
- win10系統4g的記憶體設定多大的虛擬記憶體合適Win10記憶體
- win10怎麼更改虛擬記憶體_win10更改虛擬記憶體大小方法Win10記憶體
- win10怎麼調整虛擬記憶體_win10怎麼調虛擬記憶體Win10記憶體
- win10虛擬記憶體如何優化_win10怎麼優化虛擬記憶體Win10記憶體優化
- win10 虛擬記憶體怎麼設定好 win10 虛擬記憶體設定方法Win10記憶體
- 怎麼設定虛擬記憶體win10 win10虛擬記憶體如何設定記憶體Win10