備註:
- 本教學課程隨附於 Oracle 提供的免費實驗室環境。
- 此範例使用 Oracle Cloud Infrastructure 證明資料、租用戶及區間的範例值。完成實驗室時,請將這些值替代成雲端環境的特定值。
監督 Oracle Linux 的系統資源
簡介
在本教學課程中,您將使用 Oracle Linux vmstat
、mpstat
和 top
監控系統資源使用狀況。監督系統資源的使用有助於偵測可能對系統效能造成不利影響的問題。
背景
Oracle Linux 提供工具來監控和分析系統資源使用狀況,以及可診斷多個處理作業和相關執行緒中效能問題的追蹤工具。
目標
- 探索
vmstat
指令 - 探索
mpstat
指令 - 探索
top
指令 - 使用
vmstat
和mpstat
和top
- 檢查
vmstat
、mpstat
及top
的指令輸出
軟硬體需求
安裝 Oracle Linux 8 或更新版本的用戶端系統。
注意:使用免費實驗室環境時,請參閱 Oracle Linux Lab Basics 以取得連線和其他使用指示。
瀏覽和使用 vmstat
指令選項
vmstat
顯示還有多少虛擬記憶體,以及可用空間。命令也會顯示分頁活動。您可以觀察系統上發生的移入和移出分頁。
您可以使用位於工作列的隱藏步驟和全螢幕控制項,考量檢視區域最大化,如影像中所示。
請觀看下方的影片以取得 vmstat
的簡介。
-
不使用任何選項執行
vmstat
指令。vmstat
此指令會產生單一報告。輸出分為六個區段:
procs
、memory
、swap
、io
、system
和cpu
。-
前兩個欄提供處理程序的相關資訊:
-
r
是處於等待狀態的處理作業數目。這些是閒置中並等待執行的處理程序。 -
b
是處於休眠模式且自上次更新後被中斷的程序數目。
-
-
下四欄提供記憶體相關資訊:
-
swpd
是使用的虛擬記憶體大小。 -
free
是閒置記憶體大小。 -
buff
是用來作為緩衝區的記憶體大小。 -
cache
是作為快取使用的記憶體數量。
-
-
接下來的兩個欄提供有關交換的資訊:
-
si
是從磁碟中交換的記憶體大小 (每秒)。 -
so
是交換至磁碟的記憶體大小 (每秒)。非零的
si
和so
數字表示實體記憶體不足,導致核心交換記憶體到磁碟。
-
-
下兩欄的報告輸入 / 輸出:
-
bi
是從區塊裝置每秒接收的區塊數目。 -
bo
是每秒傳送至區塊裝置的區塊數目。
-
-
下兩欄可提供下列系統資訊:
-
in
是每秒的中斷數,包括時鐘。 -
cs
是每秒相關資訊環境切換數目。
-
-
最後五個資料欄佔 CPU 時間總計的百分比:
-
us
是花費在使用者處理作業的 CPU 週期百分比。 -
sy
是花費在系統 (核心) 程序上的 CPU 週期百分比。 -
id
是花費閒置的 CPU 週期百分比。 -
wa
是等待 I/O 時所花費的 CPU 週期百分比。 -
st
是從虛擬機器竊取的 CPU 週期百分比。
-
-
-
執行
vmstat 1
命令 (數字 1,而非小寫字母l
),以每秒檢視連續報表。vmstat 1
- 若要終止,請按 Ctrl+C。
-
執行
vmstat 7 4
命令,每隔 7 秒執行 4 份報表。vmstat 7 4
計數選項會告知
vmstat
要執行的報表數目 (4),延遲選項 (7) 是每個報表之間的時間間隔。 -
執行
vmstat -s
命令,顯示各種事件計數器和記憶體統計資料的表格。vmstat -s
-
執行
vmstat -a
命令以顯示作用中和非作用中記憶體。vmstat -a
-a
選項會顯示輸出之memory
區段中的active
和非使用中 (inact
) 記憶體的數量。 -
執行
vmstat -f
指令,以顯示自上次啟動以來的分叉數目。vmstat -f
-
執行
vmstat -t
命令,為輸出新增時戳。vmstat -t
-
執行
vmstat -d
指令,以在系統上顯示磁碟使用統計資料。vmstat -d
-
執行
vmstat -p sda1
命令來建立特定磁碟分割區的報告。vmstat -p sda1
輸出顯示分割區的摘要,包括數目或讀取與寫入次數。
瀏覽和使用 mpstat
指令選項
mpstat
指令可用來收集和顯示系統中所有邏輯 CPU 的效能統計資料。當處理作業佔用 CPU 時,就無法再處理其他要求。這些其他處理作業必須等待 CPU 可用。
請觀看下方的影片以取得 mpstat
的簡介。
-
不使用任何選項執行
mpstat
指令。mpstat
第一行顯示系統上的 Linux 核心版本、主機名稱、目前日期、架構以及 CPU 數目。
下一行的第一個資料欄提供時戳,其餘的資料欄定義如下:
-
CPU
是由數字從0
或關鍵字all
指定的處理器,指出統計資料是以所有處理器的平均值來計算。 -
%user
是在使用者層次執行應用程式時所使用的 CPU 百分比。 -
%nice
是在使用者層次 (優先順序較高) 執行時所使用的 CPU 百分比。 -
%sys
是在系統 (核心) 層次執行時所使用的 CPU 百分比。mpstat
指令不包含服務硬體和軟體中斷所花費的時間。 -
%iowait
是 CPU 在系統有未處理的磁碟 I/O 要求時閒置的時間百分比。 -
%irq
是 CPU 用來服務硬體中斷的時間百分比。 -
%soft
是 CPU 用來服務軟體中斷的時間百分比。 -
%steal
是虛擬機器管理程式為另一個虛擬處理器提供服務時,虛擬 CPU 或 CPU 非自願等待的時間百分比。 -
%guest
是 CPU 執行虛擬處理器所使用的時間百分比。 -
%gnice
是 CPU 執行有經驗的來賓花費時間百分比。 -
%idle
是 CPU 閒置的時間百分比,且系統沒有未處理的磁碟 I/O 要求。
-
-
執行
mpstat 2 5
命令,每兩秒檢視 CPU 活動一次,一次最多報告 5 份。mpstat 2 5
輸出一次列印一條資訊,共五次,並列印一個平均值。
-
執行
mpstat -P ALL
命令,報告每個 CPU 的 CPU 使用狀況。mpstat -P ALL
此輸出會為所有 CPU 與每個 CPU 列印一行活動。注意:
mpstat
也會列印指定期間的平均 CPU 使用率。 -
執行
mpstat -P ALL 2 5
命令,每兩秒鐘檢視 CPU 活動一次。mpstat -P ALL 2 5
此輸出以 2 秒之間隔列印每個 CPU 5 次的 CPU 使用率統計資料。注意:
mpstat
也會列印指定期間的平均 CPU 使用率。 -
執行
mpstat -A
命令,將 CPU 使用率和中斷統計資料列印在相同的命令輸出中。mpstat -A
探索 top
指令
top
指令可讓您持續即時查看處理器活動。top
顯示系統上需要大量 CPU 處理或作業的清單,並提供有限的互動式介面來操控程序。
請觀看下方的影片以取得 top
的簡介。
-
對 CPU 活動的時間點檢視,執行不含任何選項的
top
指令。top
預設每隔 3 秒重新整理一次,並分成兩個主要區段。
上節會顯示一般資訊,例如過去 1、5 到 15 分鐘的平均負載、執行中與休眠作業數目,以及整體 CPU 與記憶體使用狀況。
-
使用以下切換開啟或關閉上方區段中顯示的輸出:
-
輸入小寫字母
l
(非數字1
) 以切換載入平均值和正常運作時間。 -
輸入
m
以切換關閉和開啟記憶體和交換使用狀況。 -
輸入
t
以切換關閉和開啟記憶體和交換使用狀況。
-
下面的區段會顯示按 CPU 使用量排序的處理作業清單,以及其處理作業 ID 號碼 (PID),以及擁有處理作業的使用者。此外,輸出會顯示處理程序使用的執行時間與記憶體。
以下說明下半部的欄:
-
PID
是作業的唯一處理作業 ID。 -
USER
是任務擁有者的有效使用者名稱。 -
PR
是作業的實際優先順序。 -
NI
是使用者空間中工作的 nice 值。負值表示較高的優先順序;正值表示優先順序較低。零值表示工作的優先順序在執行時不會生效。
-
VIRT
是工作所使用的虛擬記憶體總量。此值包含所有代碼、資料和共用程式庫,以及已交換的頁面。
-
RES
是工作所使用的非交換實體記憶體或常駐大小。 -
SHR
是作業的共用記憶體大小。此記憶體可能會與其他處理作業共用。
-
S
是任務的狀態。有五種狀態:-
D
不可中斷的休眠 -
R
執行中 -
S
睡眠中 -
T
追蹤或停止 -
Z
宗旨
-
-
%CPU
是自上次畫面更新後,工作佔經過的 CPU 時間或 CPU 用量,以 CPU 時間總計的百分比表示。 -
%MEM
是目前使用的作業共用可用的實體記憶體或記憶體使用量。 -
TIME+
是工作啟動後使用的 CPU 時間總計。 -
COMMAND
是用來啟動工作的命令行或程式名稱。
-
-
輸入 Crtl+C 以結束
top
。
比較 vmstat
、mpstat
及 top
的指令輸出
在本課堂練習中,您將執行各種 stress
測試以在實驗室系統上發出不同的載入,然後使用 vmstat
、mpstat
和 top
指令來判斷它們在不同類型的負載報告。
雖然您以背景處理程序執行測試,但請考慮開啟額外的終端機視窗來進行比較。
每個額外視窗都必須使用 ssh
登入您的實驗室執行處理到 oracle@<IP_ADDRESS_OF_COMPUTE_INSTANCE>
。其中 <IP_ADDRESS_OF_COMPUTE_INSTANCE>
是從 Oracle Cloud 主控台複製的 IP 位址。
- 登入之後,使用
sudo -i
指令切換到 root 使用者。
-
安裝
stress
工具。-
使用
dnf repolist
命令來驗證ol8_developer_EPEL
儲存區域的狀態。dnf repolist ol8_developer_EPEL
-
如果狀態為
enabled
,請繼續安裝stress
工具套裝軟體;否則,請繼續「啟用」儲存庫。 -
如果狀態為
disabled
,請使用dnf conifg-manager
指令來啟用儲存庫。dnf config-manager --enable ol8_developer_EPEL
-
-
-
執行
dnf install
指令以安裝stress
工具套裝軟體。dnf install stress -y
-
執行
stress --dry-run
命令,以檢視命令語法範例。請花點時間並檢閱範例中的選項,以及列出的其他指令選項。stress --dry-run
-
執行
vmstat 4 4
和mpstat 4 4
指令來檢視系統活動的基準。特別注意到配置給使用者和系統 (核心) 處理作業的 CPU 百分比。這些資料欄應接近零0
。並記下可用記憶體的容量。vmstat 4 4 mpstat 4 4
-
執行
stress --cpu
命令以模擬運算導向程式,然後在背景執行命令。這個命令會產生八個運算繫結處理作業。stress --cpu 8 &
-
按 return 返回提示。
-
執行
ps -ef
命令即可檢視執行中的stress
處理作業。將輸出導向至grep stress
。ps -ef | grep stress
-
-
執行
vmstat 4 10
命令,並記下與 CPU 使用率關聯的資料欄中報告的值。vmstat 4 10
一些時候,您應該會看到
us
欄下的百分比反映stress
產生的負載。 -
執行
mpstat 4 10
命令,評估所有 CPU 的使用狀況。mpstat 4 10
-
執行
mpstat -P ALL 4 10
命令,評估每個 CPU 的使用量。mpstat -P ALL 4 10
-
執行
top
命令,檢查stress
處理作業 CPU 使用率。top
幾分鐘後,請注意
stress
處理作業是以最高優先順序執行。輸入 Ctrl+C 以結束top
。 -
執行
pkill
指令以終止stress
程序。pkill stress
-
重新執行
vmstat 4 4
和mpstat 4 4
指令以檢視系統活動的基準。 -
執行新的
stress
指令,然後新增--vm
和--vm-bytes
選項,以便在系統上產生記憶體活動。stress --cpu 8 --vm 8 --vm-bytes 512M &
-
執行
vmstat 4 10
、mpstat -P ALL 4 10
和top
來評估 CPU 和記憶體活動。vmstat 4 10 mpstat -P ALL 4 10 top
- 輸入 Crtl+C 以結束
top
。
- 輸入 Crtl+C 以結束
-
使用
pkill
指令終止stress
程序。pkill stress
-
重新執行
vmstat 4 4
和mpstat 4 4
指令以檢視系統活動的基準。 -
執行新的
stress
命令並新增--io
選項,以在系統上產生輸入 / 輸出活動。stress --cpu 8 --vm 8 --vm-bytes 512M --io 8 &
-
執行
vmstat 4 10
、mpstat -P ALL 4 10
和top
以評估 CPU、記憶體、輸入 / 輸出活動。vmstat 4 10 mpstat -P ALL 4 10 top
-
輸入 Crtl+C 以結束
top
。 -
使用
pkill
來終止stress
。
-
其他學習資源
探索 docs.oracle.com/learn 上的其他實驗室,或是存取更多免費學習內容至 Oracle Learning YouTube 通道。此外,瀏覽 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請瀏覽 Oracle Help Center。
Monitor system resources on Oracle Linux
F49872-04
May 2022
Copyright © 2021, Oracle and/or its affiliates.