跳至內容

Linux Vmstat命令

更新時間
快连VPN:速度和安全性最佳的VPN服务
快连VPN:速度和安全性最佳的VPN服务

在本指南中,我們將演示在Linux中使用“vmstat”命令的各種方法。

先決條件:

要執行本指南中演示的步驟,您需要以下組件:

  • 配置正確的Linux系統。出於測試目的,請考慮使用Linux VM。
  • 訪問具有sudo權限的非根用戶
  • 對命令行界面的基本理解

Linux中的虛擬內存

RAM,或稱物理內存,是一種有限的資源,由操作系統分配給正在運行的程序。所有的程序,包括操作系統本身,都需要佔用這一空間。

當內存需求超過可用內存時,系統可能會崩潰或程序可能會請求更多內存空間。大多數情況下,這種情況是不受歡迎的。虛擬內存的概念因此應運而生,它允許系統將部分數據存儲在硬盤上,以便在需要時交換到RAM。這樣,系統可以更有效地管理內存資源,確保程序正常運行,而不會因內存不足而導致崩潰。虛擬內存的使用使得系統在面對內存需求

虛擬內存是計算機系統中的一種技術,它利用硬盤或固態硬盤上的空間來擴展內存的容量,以便在需要時充當額外的內存。虛擬內存實際上是一種將部分硬盤空間用作臨時存儲的方式,以便在處理器需要更多內存時進行補充。在UNIX和Linux操作系統中,這種技術被稱爲交換空間,用於管理內存資源的分配和交換。雖然虛擬內存並非真正的物理內存,但它可以提高系統的性能和穩定性,確保系統能夠處理更大的工作負荷。

Linux內核將內存塊移動到交換空間,並在必要時將其檢索回RAM。

虛擬內存的速度通常比物理內存慢,取決於存儲設備的性能。但在某些特定硬件設置下(如採用NVMe SSD),虛擬內存的性能可能與RAM相媲美。

vmstat命令

"vmstat"命令是一個用於監視虛擬內存相關信息的實用工具。它可以在所有Linux系統上作爲"sysstat"軟件包的一部分使用。

“vmstat”的命令結構如下:

$vmstat

基本用法

如果運行時沒有任何參數,”vmstat”會打印自上次啓動以來的系統信息:

$vmstat

產出分爲六個部分:

  • procs:當前正在運行的進程的統計信息
    • r:活動進程數
    • b:睡眠過程的數量
  • memory:內存使用統計
    • Swpd:虛擬內存總量(交換空間)
    • 空閒:可用交換空間
    • buff:用作臨時緩衝存儲器的交換空間量
    • 緩存:總緩存內存
  • swap:關於交換空間的統計信息
    • si:交換速率
    • 所以:換出的比率
  • io:I/O統計
    • bi:從塊設備接收的塊數
    • bo:發送到塊設備的塊數
  • 系統:日程安排統計
    • in:系統中斷計數
    • cs:上下文切換速率
  • CPU:各種CPU統計數據
    • 美國:CPU花費在非內核進程上的時間
    • sy:CPU花費在內核進程上的時間
    • id:CPU花費時間空閒
    • wa:CPU花費時間等待I/O操作完成
    • st:虛擬機使用的CPU時間

更改顯示單元

默認情況下,”vmstat”以字節爲單位報告內存值。要更改單位,請使用”—S”標誌:

$vmstat-S

在這裏,“vmstat”以MB爲單位打印值。

有幾個可用的內存單元:

  • M:1048576字節(2^20字節)
  • M:1000000字節(1000千字節)
  • K:1024字節(1兆字節)
  • k:1000字節(1字節)

持續統計數據更新

默認情況下,”vmstat”打印一次報告。但是,我們可以指示”vmstat”以指定的時間間隔(以秒爲單位)提供連續的報告。

命令結構如下:

$vmstat

例如,要每隔2秒獲取更新的統計信息,命令如下:

$vmstat 2

輸出不會停止,除非使用“Ctrl + C”手動終止。

或者,我們可以指定”vmstat”來提供特定次數的統計數據:

$vmstat

例如,要獲取每2秒更新一次的統計數據,命令如下所示:

$vmstat 2 5

主動和非主動記憶

活動內存指的是進程當前使用的內存空間。另一方面,非活動內存指的是分配給不再運行的進程的內存空間。

使用”vmstat”,我們可以檢查正在使用的活動和非活動內存的數量:

$vmstat—a

這裏,”buff”和”cache”列分別被”inact”和”active”列替換。

內存和調度

要獲取有關內存和調度的更詳細報告,請使用以下命令:

$vmstat—s

這裏:

  • 第1節:這一節介紹基本系統信息,如總物理內存、活動/非活動內存、空閒/緩衝區/緩存內存等。
  • 第2節:各種CPU統計數據
    • 非良好CPU節拍:高優先級進程使用CPU的次數。
    • NICE CPU TICK:低優先級進程使用CPU的次數。
    • 系統CPU計數:內核進程使用CPU的次數。
    • Idle CPU ticks:CPU處於空閒狀態的次數。
    • IO—wait CPU ticks:CPU等待I/O管理的次數。
    • IRQ:CPU接收中斷請求的次數。
    • softirq:CPU接收軟件中斷請求的次數。
    • 被盜CPU時間:VM竊取CPU時間的次數。
  • 第3節:內存分頁狀態
  • 第4節:事件計數器

引導後的叉子

Forks指的是由現有進程產生的進程。要獲取fork計數的統計信息,請運行以下命令:

$vmstat-f

磁盤和分區統計

“vmstat”命令還可以提供有關磁盤活動的信息。要獲取磁盤活動的快速摘要,請運行以下命令:

$vmstat—D

要獲取更詳細的磁盤活動報告(包括讀/寫統計),請改用以下命令:

$vmstat—d

這裏:

  • 讀數
    • total:磁盤讀取總數
    • 已合併:組讀取總數
    • sectors:讀取的sectors總數
    • ms:從磁盤讀取數據的總時間(毫秒)
  • 寫道
    • total:磁盤寫入計數
    • 已合併:組寫入總數
    • sectors:寫入的sectors總數
    • ms:寫入磁盤的總時間(毫秒)
  • io
    • cur:當前磁盤讀/寫總數
    • 秒:正在進行的讀/寫操作所花費的時間量(秒)

“vmstat”命令還可以生成特定磁盤分區的報告。要獲取分區報告,請使用以下命令結構:

$vmstat-p

板材統計

板分配是一種有效的對象內存分配機制。與以前的機制相比,slab分配提供了減少內存碎片(由內存分配和解除分配引起的)。

要檢查系統的slab統計信息,請使用以下”vmstat”命令:

$sudo vmstat—m

請注意,它需要root權限才能查看統計數據。

這裏:

  • 緩存:緩存數據的名稱
  • Num:Num緩存中處於活動狀態的對象的數量
  • Total:特定緩存中對象的總數
  • Size:緩存對象的大小
  • Pages:包含緩存對象的內存分頁計數

結論

在本指南中,我們展示了使用”vmstat”命令的各種方法。除了虛擬內存外,”vmstat”還可以報告磁盤統計數據、分叉、片等。

有興趣瞭解其他系統監控工具嗎?瞭解有關HTOP、KILL、PS等的更多信息。

計算快樂!

以上就是Linux Vmstat命令的詳細內容,更多請關注本站其它相關文章!

更新時間

發表留言

請注意,留言須先通過審核才能發佈。