iostat 系統IO監控命令學習

一、iostat 命令描述

“iostat”命令用于監測系統輸入/輸出設備的負載情況,其通過觀察設備處于活躍狀態的時間與平均傳輸速率之間的關系來實現這一目的。該命令會生成報告,這些報告可用于調整系統配置,以更好地平衡物理磁盤之間的輸入/輸出負載。
iostat 命令生成的第一份報告會提供有關系統自啟動以來的時間的統計信息(除非使用了 -y 選項)。在這種情況下,第一份報告將被省略。每次后續報告都會涵蓋自上一次報告以來的時間。每次運行 iostat 命令時,都會報告所有統計信息。報告包括一個 CPU 標題行,隨后是一行 CPU 統計信息。在多處理器系統中,CPU 統計信息是按系統范圍計算的,即所有處理器的平均值。會顯示一個設備標題行,隨后是每個配置設備的一行統計信息。
“間隔參數”指定了每次報告之間的時間間隔(以秒為單位)。而“計數參數”則可以與“間隔參數”一同設定。如果指定了“計數參數”,其值將決定在每隔“間隔時間”秒內生成的報告數量。如果
如果未指定計數參數,則間隔參數一經設定,iostat 命令就會持續生成報告。

安裝: yum -y install sysstat

二、iostat 常用參數介紹

參數作用與說明典型用法示例
-c僅顯示 CPU 統計(%user %nice %system %iowait %idle)iostat -c 1 3
-d僅顯示磁盤/設備統計iostat -d 1
-x擴展模式:額外給出 await svctm %util avgqu-sz 等關鍵指標,定位 I/O 瓶頸必用iostat -x 1
-k/-m以 KiB/s 或 MiB/s 為單位顯示吞吐量(默認是 block/s)iostat -dk 1
-p指定某個設備或分區,避免被無關設備刷屏iostat -p sda 1
-t輸出時間戳,方便做日志或趨勢對比iostat -xt 1 10 > io.log
-y跳過第一次采樣(避免系統啟動平均值干擾)iostat -xy 1
-z隱藏無活動的設備,輸出更干凈iostat -dz 1

三、實例:

實例1. 輸出所有設置負載情況

如下可以看出我只有一塊設置 nvme0n1

# iostat
Linux 4.18.0-348.7.1.el8_5.x86_64 (localhost.localdomain)       08/04/2025      _x86_64_        (8 CPU)avg-cpu:  %user   %nice %system %iowait  %steal   %idle0.45    0.00    1.36    2.74    0.00   95.44Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
nvme0n1         676.62     11660.61     11867.46  159227855  162052488
scd0              0.00         0.08         0.00       1041          0

cpu屬性值說明:

  • %user:正常優先級用戶進程占 CPU 的時間
  • %nice:被 nice 降過優先級的用戶進程占 CPU 的時間
  • %system:內核態(系統調用、中斷等)占 CPU 的時間
  • %iowait:CPU 空閑但等待 I/O 完成的時間
  • %steal:被虛擬機 Hypervisor 或其他 VM 偷走的 CPU 時間
  • %idle:CPU 真正空閑、無任務可運行的時間

disk屬性值說明:

  • tps:每秒傳輸(I/O)次數
  • kB_read/s:每秒從設備讀數據量
  • kB_wrtn/s:每秒向設備寫數據量
  • kB_read:啟動至今累計讀量
  • kB_wrtn:啟動至今累計寫量

實例2. 定時顯示所有信息

每隔兩秒顯示,總共顯示3次

# iostat 2 3
Linux 4.18.0-348.7.1.el8_5.x86_64 (localhost.localdomain)       08/04/2025      _x86_64_        (8 CPU)avg-cpu:  %user   %nice %system %iowait  %steal   %idle0.44    0.00    1.32    2.65    0.00   95.59Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
nvme0n1         654.28     11275.47     11475.50  159227963  162052618
scd0              0.00         0.07         0.00       1041          0avg-cpu:  %user   %nice %system %iowait  %steal   %idle0.06    0.00    0.31    0.00    0.00   99.62Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
nvme0n1           0.00         0.00         0.00          0          0
scd0              0.00         0.00         0.00          0          0avg-cpu:  %user   %nice %system %iowait  %steal   %idle0.06    0.00    0.25    0.00    0.00   99.69Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
nvme0n1           0.00         0.00         0.00          0          0
scd0              0.00         0.00         0.00          0          0

實例3. 查看TPS和吞吐量

查看nvme0n1 磁盤的吞吐量信息,第一次tps顯示644.79 是系統啟動以來(或工具啟動以來)的累計統計”,從第二次開始才是“每 1 秒的實時增量”。

# iostat -d nvme0n1 -m 1 3
Linux 4.18.0-348.7.1.el8_5.x86_64 (localhost.localdomain)       08/04/2025      _x86_64_        (8 CPU)Device             tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
nvme0n1         644.79        10.85        11.04     155496     158254Device             tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
nvme0n1           0.00         0.00         0.00          0          0Device             tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
nvme0n1           0.00         0.00         0.00          0          0

實例4. 查看設備使用率(%util)和響應時間(await)

# iostat -d nvme0n1 -x -k 1 1
Linux 4.18.0-348.7.1.el8_5.x86_64 (localhost.localdomain)       08/04/2025      _x86_64_        (8 CPU)Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
nvme0n1        293.84  341.03  10940.83  11135.15     0.00     0.21   0.00   0.06    3.06    4.47   2.42    37.23    32.65   0.09   5.59
  • r/s:每秒讀請求個數(讀 IOPS)
  • w/s:每秒寫請求個數(寫 IOPS)
  • rMB/s:每秒讀取的數據量(讀吞吐量)
  • wMB/s:每秒寫入的數據量(寫吞吐量)
  • rrqm/s:每秒合并的讀請求(合并后減少實際磁盤讀)
  • wrqm/s:每秒合并的寫請求(合并后減少實際磁盤寫)
  • %rrqm:讀請求合并比例(越高越省磁盤)
  • %wrqm:寫請求合并比例(越高越省磁盤)
  • r_await:讀請求平均響應時間(從提交到完成,單位毫秒)
  • w_await:寫請求平均響應時間(從提交到完成,單位毫秒)
  • aqu-sz:平均隊列長度
  • rareq-sz:(等待 + 正在服務的 I/O 數)
  • wareq-sz:平均讀請求大小(KB/請求)
  • svctm:平均寫請求大小(KB/請求)
  • %util:設備繁忙度(100% 表示磁盤飽和)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/94489.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/94489.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/94489.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

jenkins使用ssh方式連接gitee 公鑰、私鑰配置、指紋

前言 Gitee 提供了基于 SSH 協議的 Git 服務,jenkins可使用ssh方式連接gitee,拉取代碼、提交tag等;使用ssh 連接,相比用戶名密碼方式,可省去因密碼變更而引起的jenkins關聯修改。 gitee生成、添加 SSH 公鑰 生成SSH…

如何在Android設備上刪除多個聯系人(3種方法)

如果您想清理安卓手機,或者只是想刪除舊的、不需要的聯系人,或者刪除多個聯系人,有三種有效的方法可供選擇。無論您是想手動刪除安卓手機上的聯系人,還是使用專用工具,都可以按照以下步驟操作。方法1:如何通…

Angular進階之十三:Angular全新控制流:革命性的模板語法升級

隨著Angular v17的發布,框架帶來了革命性的控制流語法,徹底改變了我們編寫模板的方式。這些改進不僅僅是語法糖——它們提升了性能、開發體驗和代碼可維護性。 為什么我們需要新的控制流? 在之前的Angular版本中,我們使用結構指令…

【Redis】string字符串

目錄 一.常見命令 1.1.SET 1.2.GET 1.3.MGET 1.4.MSET 1.5.SETNX 二.計數命令 2.1.INCR 2.2.INCRBY 2.3.DECR 2.4.DECYBY 2.5.INCRBYFLOAT 三 . 其他命令 3.1.APPEND 3.2.GETRANGE 3.3.SETRANGE 3.4.STRLEN 四. 字符串類型內部編碼 五. 典型使用場…

Nginx 學習

通過網盤分享的文件:Nginx 鏈接: https://pan.baidu.com/s/1dCc7FoND90H_x7rvRUXJqg 提取碼: yyds 通過網盤分享的文件:Tomcat 鏈接: https://pan.baidu.com/s/1nj_5j_66gS_YHUAX1C25jg 提取碼: yyds Nginx安裝、啟動 安裝依賴庫 #安裝C編譯器 yum insta…

Java、Android及計算機基礎面試題總結

1. String、StringBuffer、StringBuilder區別特性StringStringBufferStringBuilder可變性不可變可變可變線程安全是是(synchronized)否性能低(頻繁操作時)中等高場景字符串常量多線程字符串操作單線程字符串操作2. 接口和抽象類的區別特性接口(Interface)抽象類(Abstract Class…

數據集相關類代碼回顧理解 | sns.distplot\%matplotlib inline\sns.scatterplot

【PyTorch】單目標檢測項目 目錄 os.path.join sns.distplot adjust_brightness os.path.join fullPath2imgos.path.join(path2data,"Training400",prefix,imgName[id_]) 使用os.path.join函數,智能地處理不同操作系統中的路徑分隔符問題&#xff0…

JavaScript:鏈式調用

概念 鏈式調用(Method Chaining)是 JavaScript 中一種常見的編程模式,允許通過連續調用對象的方法來簡化代碼。這種模式的核心在于每個方法返回調用對象本身(通常是 this),從而可以繼續調用其他方法。 鏈式…

龍芯(loongson) ls2k1000 openwrt

PC環境:Linux Mint 21.3安裝依賴sudo apt install build-essential clang flex bison g gawk gcc-multilib g-multilib gettext git libncurses-dev libssl-dev python3-distutils rsync unzip zlib1g-dev file wget下載源碼:git clone https://gitee.co…

算法438. 找到字符串中所有字母異位詞

給定兩個字符串 s 和 p,找到 s 中所有 p 的 異位詞 的子串,返回這些子串的起始索引。不考慮答案輸出的順序。示例 1:輸入: s "cbaebabacd", p "abc" 輸出: [0,6] 解釋: 起始索引等于 0 的子串是 "cba", 它是 "abc&…

Go語言中的閉包詳解

閉包在Go語言中是一個能夠訪問并操作其外部作用域變量的函數,即使外部函數已經執行完畢。閉包由函數體和其引用的環境(外部變量)組成,及:閉包 函數 環境。閉包的特性:捕獲外部變量:內部函數可…

【DL學習筆記】Dataset類功能以及自定義

文章目錄一、Dataset 與 DataLoader 功能介紹抽象類Dataset的作用DataLoader 作用兩者關系二、自定義Dataset類Dataset的三個重要方法__len__()方法_getitem__()方法__init__ 方法三、現成的torchvision.datasets模塊MNIST舉例COCODetection舉例torchvision.datasets.MNIST使用…

Python爬蟲實戰:研究python_reference庫,構建技術研究數據系統

1. 引言 1.1 研究背景與意義 在大數據時代,數據已成為重要的生產要素。互聯網作為全球最大的信息庫,蘊含著海量有價值的數據。如何從紛繁復雜的網絡信息中快速、準確地提取所需數據,成為各行各業面臨的重要課題。網絡爬蟲技術作為數據獲取的關鍵手段,能夠模擬人類瀏覽網頁…

Web開發系列-第15章 項目部署-Docker

第15章 項目部署-Docker Docker技術能夠避免部署對服務器環境的依賴,減少復雜的部署流程。 輕松部署各種常見軟件、Java項目 參考文檔:???????????????????第十五章:…

微軟無界鼠標(Mouse without Borders)安裝及使用:多臺電腦共用鼠標鍵盤

文章目錄一、寫在前面二、下載安裝1、兩臺電腦都下載安裝2、被控端3、控制端主機三、使用一、寫在前面 在辦公中,我們經常會遇到這種場景,自己帶著筆記本電腦外加公司配置的臺式機。由于兩臺電腦,所以就需要搭配兩套鍵盤鼠標。對于有限的辦公…

nodejs 編程基礎01-NPM包管理

1:npm 包管理介紹 npm 是nodejs 的包管理工具,類似于java 的maven 和 gradle 等,用來解決nodejs 的依賴包問題 使用場景:1. 從NPM 服務騎上下載或拉去別人編寫好的第三方包到本地進行使用2. 將自己編寫代碼或軟件包發布到npm 服務器供他人使用…

基于Mediapipe_Unity_Plugin實現手勢識別

GitHub - homuler/MediaPipeUnityPlugin: Unity plugin to run MediaPipehttps://github.com/homuler/MediaPipeUnityPlugin 實現了以下: public enum HandGesture { None, Stop, ThumbsUp, Victory, OK, OpenHand } 核心腳本&#xff1a…

Android 項目構建編譯概述

主要內容是Android AOSP源碼的管理方式,項目源碼的構建和編譯,用到比如git、repo、gerrit一些命令工具,以及使用Soong編譯系統,編寫Android.bp文件的格式樣式。 1. Android操作系統堆棧概述 Android 是一個針對多種不同設備類型打…

Python爬蟲08_Requests聚焦批量爬取圖片

一、Requests聚焦批量爬取圖片 import re import requests import os import timeurl https://www.douban.com/ userAgent {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/20100101 Firefox/122.0}#獲取整個瀏覽頁面 page_text requests.get(urlur…

Spring Cloud系列—簡介

目錄 1 單體架構 2 集群與分布式 3 微服務架構 4 Spring Cloud 5 Spring Cloud環境和工程搭建 5.1 服務拆分 5.2 示例 5.2.1 數據庫配置 5.2.2 父子項目創建 5.2.3 order_service子項目結構配置 5.2.4 product_service子項目結構配置 5.2.5 服務之間的遠程調用 5.…