vmstat 命令代表“虛擬內存統計”。一種報告虛擬內存統計信息的工具。具體來說,它報告有關係統內存、交換和處理器資源利用率、內核線程和磁盤的實時數據。 Linux 開發人員經常使用此工具來解決與內存相關的問題。

運行不帶任何選項的 vmstat 命令可提供自上次重新引導系統以來的內存統計信息摘要。或者,您可以使用 vmstat 定期報告內存。這將在本教程中詳細解釋。

使用 vmstat 命令

首先,讓我們看一下不帶選項運行 vmstat 命令的輸出。為此,您需要鍵入 vmstat 並按 Enter。

vmstat

我知道這是很多參數。讓我們看看每個是什麼意思。

  • 過程
    • r: 活動進程的數量。
    • 2號: 不間斷睡眠進程的數量。
  • 記憶
    • 轉變:系統使用的虛擬內存量。
    • 自由:空閒內存量也稱為空閒內存。
    • 淡黃色:用作緩衝區的內存量。
    • 緩存:用作緩存的內存量。
  • 貨幣兌換
    • 什麼時候: 從磁盤換入內存。該值表示匯率(每秒)。 (存在)
    • 所以: 內存被交換到磁盤。該值表示匯率(每秒)。 (出去)
  • 一代
    • 什麼時候: 從塊設備接收塊的速率(塊/秒)。
    • 波特率: 塊發送到塊設備的速率(塊/秒)。
  • 系統
    • 存在: 每秒中斷,包括時鐘。
    • CS: 調度程序每秒進行的上下文切換次數。
  • CPU – 這些是總 CPU 時間的百分比。
    • 我們: 在用戶進程中花費的 CPU 時間百分比。
    • 他的: 在內核進程中花費的 CPU 時間百分比。
    • 鑑別: 空閒時間的百分比。
    • 哇: 等待 I/O 所花費的 CPU 時間百分比。
    • 結石: 被虛擬機竊取的時間百分比。

1.帶有間隔和重複的vmstat命令

您可以使用 vmstat 指定時間間隔以實時獲取輸出。這是如何做到的:

$ vmstat [DELAY] [ITERATIONS]
  • 延遲‘ 表示刷新輸出之前的時間。
  • 迭代次數‘ 表示刷新輸出的次數。

默認情況下,如果僅提及延遲,則該過程將繼續進行,直到用戶退出。要退出它,用戶必須按 Ctrl + C. 要延遲 1 秒並重複 15 次,命令將是:

$ vmstat 1 15
虛擬機 15

不提及迭代值,輸出如下所示:

$ vmstat 3
虛擬機 3

這裡的輸出每 3 秒更新一次。按 Ctrl+C 退出。將此信息保存到文件中通常很方便。您可以使用:

$ vmstat 1 5 > vmstat.txt
vmstat 到文件

2. 使用 vmstat 確定分叉的數量。

在 Linux 操作系統中,fork 基本上是一個系統調用,它從正在運行的父進程創建一個子進程。

你可以使用它 -F 與 vmstat 命令一起,此標誌顯示自系統重新引導以來的分叉總數。分叉總數 , 叉子, 什麼時候 克隆 系統調用。

$ vmstat -f
叉

3.事件計數器和內存統計

將 -s 標誌與 vmstat 命令一起使用以顯示有關內存的其他信息。此命令顯示各種事件計數器和內存統計信息的表格。

$ vmstat -s
虛擬機

4.磁盤統計

與上面的內存統計類似,您也可以使用 -D 標誌來獲取有關磁盤活動的信息。

$ vmstat -D
虛擬機數據

5. 活躍和不活躍的記憶

要顯示活動和非活動內存而不是緩衝區和高速緩存,請在 vmstat 命令中使用 -a 標誌。

  • 主動記憶 瀏覽最近訪問的頁面。
  • 非活動記憶 瀏覽最近未訪問過的頁面。
$ vmstat -a 
虛擬機

6、換單位

您可以更改輸出的內存單位。為此,請在 vmstat 命令中使用 -S 標誌。 -S 標誌後跟四個標誌之一:

  • – 千字節(1000 字節)
  • – 千字節(1024 字節)
  • 儀表 – 兆字節(1000000 字節)
  • 儀表 – 兆字節(1048576 字節)

語法是:

$ vmstat -S [option] 

在這裡,您可以將選項替換為上述四個中的任何一個。

$ vmstat -S k
千字節千字節
$ vmstat -S K
千字節千字節
$ vmstat -S m
兆字節兆字節
$ vmstat -S M
兼職工作兼職工作

結論是

本教程介紹了 vmstat,這是一種用於跟踪系統性能的流行工具。 有關 vmstat 命令的更多信息,請查看手冊頁。