一、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.…