備註:

監督 Oracle Linux 的系統資源

簡介

在本教學課程中,您將使用 Oracle Linux vmstatmpstattop 監控系統資源使用狀況。監督系統資源的使用有助於偵測可能對系統效能造成不利影響的問題。

背景

Oracle Linux 提供工具來監控和分析系統資源使用狀況,以及可診斷多個處理作業和相關執行緒中效能問題的追蹤工具。

目標

軟硬體需求

安裝 Oracle Linux 8 或更新版本的用戶端系統。

注意:使用免費實驗室環境時,請參閱 Oracle Linux Lab Basics 以取得連線和其他使用指示。

瀏覽和使用 vmstat 指令選項

vmstat 顯示還有多少虛擬記憶體,以及可用空間。命令也會顯示分頁活動。您可以觀察系統上發生的移入和移出分頁。

您可以使用位於工作列的隱藏步驟全螢幕控制項,考量檢視區域最大化,如影像中所示。

隱藏步驟 隱藏步驟

請觀看下方的影片以取得 vmstat 的簡介。

  1. 不使用任何選項執行 vmstat 指令。

    vmstat
    

    此指令會產生單一報告。輸出分為六個區段:procsmemoryswapiosystemcpu

    • 前兩個欄提供處理程序的相關資訊:

      • r 是處於等待狀態的處理作業數目。這些是閒置中並等待執行的處理程序。

      • b 是處於休眠模式且自上次更新後被中斷的程序數目。

    • 下四欄提供記憶體相關資訊:

      • swpd 是使用的虛擬記憶體大小。

      • free 是閒置記憶體大小。

      • buff 是用來作為緩衝區的記憶體大小。

      • cache 是作為快取使用的記憶體數量。

    • 接下來的兩個欄提供有關交換的資訊:

      • si 是從磁碟中交換的記憶體大小 (每秒)。

      • so 是交換至磁碟的記憶體大小 (每秒)。

        非零的 siso 數字表示實體記憶體不足,導致核心交換記憶體到磁碟。

    • 下兩欄的報告輸入 / 輸出:

      • bi 是從區塊裝置每秒接收的區塊數目。

      • bo 是每秒傳送至區塊裝置的區塊數目。

    • 下兩欄可提供下列系統資訊:

      • in 是每秒的中斷數,包括時鐘。

      • cs 是每秒相關資訊環境切換數目。

    • 最後五個資料欄佔 CPU 時間總計的百分比:

      • us 是花費在使用者處理作業的 CPU 週期百分比。

      • sy 是花費在系統 (核心) 程序上的 CPU 週期百分比。

      • id 是花費閒置的 CPU 週期百分比。

      • wa 是等待 I/O 時所花費的 CPU 週期百分比。

      • st 是從虛擬機器竊取的 CPU 週期百分比。

  2. 執行 vmstat 1 命令 (數字 1,而非小寫字母 l),以每秒檢視連續報表。

    vmstat 1
    
    • 若要終止,請按 Ctrl+C。
  3. 執行 vmstat 7 4 命令,每隔 7 秒執行 4 份報表。

    vmstat 7 4
    

    計數選項會告知 vmstat 要執行的報表數目 (4),延遲選項 (7) 是每個報表之間的時間間隔。

  4. 執行 vmstat -s 命令,顯示各種事件計數器和記憶體統計資料的表格。

    vmstat -s
    
  5. 執行 vmstat -a 命令以顯示作用中和非作用中記憶體。

    vmstat -a
    

    -a 選項會顯示輸出之 memory 區段中的 active 和非使用中 (inact) 記憶體的數量。

  6. 執行 vmstat -f 指令,以顯示自上次啟動以來的分叉數目。

    vmstat -f
    
  7. 執行 vmstat -t 命令,為輸出新增時戳。

    vmstat -t
    
  8. 執行 vmstat -d 指令,以在系統上顯示磁碟使用統計資料。

    vmstat -d
    
  9. 執行 vmstat -p sda1 命令來建立特定磁碟分割區的報告。

    vmstat -p sda1
    

    輸出顯示分割區的摘要,包括數目或讀取與寫入次數。

瀏覽和使用 mpstat 指令選項

mpstat 指令可用來收集和顯示系統中所有邏輯 CPU 的效能統計資料。當處理作業佔用 CPU 時,就無法再處理其他要求。這些其他處理作業必須等待 CPU 可用。

請觀看下方的影片以取得 mpstat 的簡介。

  1. 不使用任何選項執行 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 要求。

  2. 執行 mpstat 2 5 命令,每兩秒檢視 CPU 活動一次,一次最多報告 5 份。

    mpstat 2 5
    

    輸出一次列印一條資訊,共五次,並列印一個平均值。

  3. 執行 mpstat -P ALL 命令,報告每個 CPU 的 CPU 使用狀況。

    mpstat -P ALL
    

    此輸出會為所有 CPU 與每個 CPU 列印一行活動。注意:mpstat 也會列印指定期間的平均 CPU 使用率。

  4. 執行 mpstat -P ALL 2 5 命令,每兩秒鐘檢視 CPU 活動一次。

    mpstat -P ALL 2 5
    

    此輸出以 2 秒之間隔列印每個 CPU 5 次的 CPU 使用率統計資料。注意:mpstat 也會列印指定期間的平均 CPU 使用率。

  5. 執行 mpstat -A 命令,將 CPU 使用率和中斷統計資料列印在相同的命令輸出中。

    mpstat -A
    

探索 top 指令

top 指令可讓您持續即時查看處理器活動。top 顯示系統上需要大量 CPU 處理或作業的清單,並提供有限的互動式介面來操控程序。

請觀看下方的影片以取得 top 的簡介。

  1. 對 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 是用來啟動工作的命令行或程式名稱。

  2. 輸入 Crtl+C 以結束 top

比較 vmstatmpstattop 的指令輸出

在本課堂練習中,您將執行各種 stress 測試以在實驗室系統上發出不同的載入,然後使用 vmstatmpstattop 指令來判斷它們在不同類型的負載報告。

雖然您以背景處理程序執行測試,但請考慮開啟額外的終端機視窗來進行比較。

每個額外視窗都必須使用 ssh 登入您的實驗室執行處理到 oracle@<IP_ADDRESS_OF_COMPUTE_INSTANCE>。其中 <IP_ADDRESS_OF_COMPUTE_INSTANCE> 是從 Oracle Cloud 主控台複製的 IP 位址。

  1. 安裝 stress 工具。

    1. 使用 dnf repolist 命令來驗證 ol8_developer_EPEL 儲存區域的狀態。

      dnf repolist ol8_developer_EPEL
      
      • 如果狀態為 enabled,請繼續安裝 stress 工具套裝軟體;否則,請繼續「啟用」儲存庫。

      • 如果狀態為 disabled,請使用 dnf conifg-manager 指令來啟用儲存庫。

        dnf config-manager --enable ol8_developer_EPEL
        
  2. 執行 dnf install 指令以安裝 stress 工具套裝軟體。

    dnf install stress -y
    
  3. 執行 stress --dry-run 命令,以檢視命令語法範例。請花點時間並檢閱範例中的選項,以及列出的其他指令選項。

    stress --dry-run
    
  4. 執行 vmstat 4 4mpstat 4 4 指令來檢視系統活動的基準。特別注意到配置給使用者和系統 (核心) 處理作業的 CPU 百分比。這些資料欄應接近零 0。並記下可用記憶體的容量。

    vmstat 4 4
    mpstat 4 4
    
  5. 執行 stress --cpu 命令以模擬運算導向程式,然後在背景執行命令。這個命令會產生八個運算繫結處理作業。

    stress --cpu 8 &
    
    • return 返回提示。

    • 執行 ps -ef 命令即可檢視執行中的 stress 處理作業。將輸出導向至 grep stress

      ps -ef | grep stress
      
  6. 執行 vmstat 4 10 命令,並記下與 CPU 使用率關聯的資料欄中報告的值。

    vmstat 4 10
    

    一些時候,您應該會看到 us 欄下的百分比反映 stress 產生的負載。

  7. 執行 mpstat 4 10 命令,評估所有 CPU 的使用狀況。

    mpstat 4 10
    
  8. 執行 mpstat -P ALL 4 10 命令,評估每個 CPU 的使用量。

    mpstat -P ALL 4 10
    
  9. 執行 top 命令,檢查 stress 處理作業 CPU 使用率。

    top
    

    幾分鐘後,請注意 stress 處理作業是以最高優先順序執行。輸入 Ctrl+C 以結束 top

  10. 執行 pkill 指令以終止 stress 程序。

    pkill stress
    
  11. 重新執行 vmstat 4 4mpstat 4 4 指令以檢視系統活動的基準。

  12. 執行新的 stress 指令,然後新增 --vm--vm-bytes 選項,以便在系統上產生記憶體活動。

    stress --cpu 8 --vm 8 --vm-bytes 512M &
    
  13. 執行 vmstat 4 10mpstat -P ALL 4 10top 來評估 CPU 和記憶體活動。

    vmstat 4 10
    mpstat -P ALL 4 10
    top
    
    • 輸入 Crtl+C 以結束 top
  14. 使用 pkill 指令終止 stress 程序。

    pkill stress 
    
  15. 重新執行 vmstat 4 4mpstat 4 4 指令以檢視系統活動的基準。

  16. 執行新的 stress 命令並新增 --io 選項,以在系統上產生輸入 / 輸出活動。

    stress --cpu 8 --vm 8 --vm-bytes 512M --io 8 &
    
  17. 執行 vmstat 4 10mpstat -P ALL 4 10top 以評估 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