Linux Vmstat指令

王林
發布: 2024-03-20 13:49:11
轉載
1188 人瀏覽過

Linux Vmstat命令

在本指南中,我們將示範在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指令的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:mryunwei.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!