使用iostat分析IO性能

人工智能——框架表示法 1975年美国明斯基在“A framework for representing knowledge”提出了框架理论。 1. 框架及框架的一般表示形式 框架:一种描述对象属性的数据结构。 框架的一般表示形式 <框架名> 槽名1: 侧面名1:值1,值2…,值p1 侧面名2:值1,值2…,值p2 侧面名2:值1,值2…,值pm1 槽名2: 侧面名... 阅读详情

使用iostat分析IO性能

iostat用于输出CPU和磁盘I/O相关的统计信息.

1.不加选项执行iostat

[patrickxu@vm1 ~]$ iostat
Linux 2.6.32-279.19.3.el6.ucloud.x86_64 (vm1)   06/11/2017  _x86_64_    (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.08    0.00    0.06    0.00    0.00   99.86

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
vda               0.45         0.29         8.10    6634946  183036680
vdb               0.12         3.11        30.55   70342034  689955328

单独执行iostat,显示的结果为从系统开机到当前执行时刻的统计信息。

以上输出中,包含三部分:

选项说明
第一行最上面指示系统版本、主机名和当前日期
avg-cpu总体cpu使用情况统计信息,对于多核cpu,这里为所有cpu的平均值
Device各磁盘设备的IO统计信息

Device中各列参数含义如下:

选项说明
%userCPU在用户态执行进程的时间百分比。
%niceCPU在用户态模式下,用于nice操作,所占用CPU总时间的百分比
%systemCPU处在内核态执行进程的时间百分比
%iowaitCPU用于等待I/O操作占用CPU总时间的百分比
%steal管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟CPU的百分比
%idleCPU空闲时间百分比

1. 若 %iowait 的值过高,表示硬盘存在I/O瓶颈
2. 若 %idle 的值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量
3. 若 %idle 的值持续低于1,则系统的CPU处理能力相对较低,表明系统中最需要解决的资源是 CPU

avg-cpu中各列参数含义如下:

选项说明
Device设备名称
tps每秒向磁盘设备请求数据的次数,包括读、写请求,为rtps与wtps的和。出于效率考虑,每一次IO下发后并不是立即处理请求,而是将请求合并(merge),这里tps指请求合并后的请求计数。
Blk_read/sIndicate the amount of data read from the device expressed in a number of blocks per second. Blocks are equivalent to sectors with kernels 2.4 and later and therefore have a size of 512 bytes. With older kernels, a block is of indeterminate size.
Blk_wrtn/sIndicate the amount of data written to the device expressed in a number of blocks per second.
Blk_read取样时间间隔内读扇区总数量
Blk_wrtn取样时间间隔内写扇区总数量

我们可以使用-c选项单独显示avg-cpu部分的结果,使用-d选项单独显示Device部分的信息。

2.指定采样时间间隔与采样次数

与sar命令一样,我们可以以”iostat interval [count] ”形式指定iostat命令的采样间隔和采样次数:

[patrickxu@vm1 ~]$ iostat -d 2 3
Linux 2.6.32-279.19.3.el6.ucloud.x86_64 (vm1)   06/12/2017  _x86_64_    (8 CPU)

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
vda               0.45         0.29         8.10    6634946  183051408
vdb               0.12         3.11        30.55   70342034  689955328

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
vda               0.00         0.00         0.00          0          0
vdb               0.00         0.00         0.00          0          0

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
vda               1.50         0.00        12.00          0         24
vdb               0.00         0.00         0.00          0          0

以上命令输出Device的信息,采样时间为1秒,采样2次,若不指定采样次数,则iostat会一直输出采样信息,直到按”ctrl+c”退出命令。注意,第1次采样信息与单独执行iostat的效果一样,为从系统开机到当前执行时刻的统计信息。

3.以kB为单位显示读写信息(-k选项)/以mB为单位显示读写信息(-m选项)

我们可以使用-k选项,指定iostat的部分输出结果以kB为单位,而不是以扇区数为单位:

[patrickxu@vm1 ~]$ iostat -d -k
Linux 2.6.32-279.19.3.el6.ucloud.x86_64 (vm1)   06/12/2017  _x86_64_    (8 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               0.45         0.15         4.05    3317473   91525980
vdb               0.12         1.56        15.27   35171017  344977664

以上输出中,kB_read/s、kB_wrtn/s、kB_read和kB_wrtn的值均以kB为单位,相比以扇区数为单位,这里的值为原值的一半(1kB=512bytes*2)

4.更详细的io统计信息(-x选项)

为显示更详细的io设备统计信息,我们可以使用-x选项,在分析io瓶颈时,一般都会开启-x选项:

linux # iostat -x -k -d 1
Linux 2.6.16.60-0.21-smp (linux)     06/13/12

……
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00  9915.00    1.00   90.00     4.00 34360.00   755.25    11.79  120.57   6.33  57.60

以上各列的含义如下:

选项说明
rrqm/s每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并
wrqm/s每秒对该设备的写请求被合并次数
r/s每秒完成的读次数
w/s每秒完成的写次数
rkB/s每秒读数据量(kB为单位)
wkB/s每秒写数据量(kB为单位)
avgrq-sz平均每次IO操作的数据量(扇区数为单位)
avgqu-sz平均等待处理的IO请求队列长度
await平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)
svctm平均每次IO请求的处理时间(毫秒为单位)
%util采用周期内用于IO操作的时间比率,即IO队列非空的时间比率

对于以上示例输出,我们可以获取到以下信息:
- 每秒向磁盘上写30M左右数据(wkB/s值)
- 每秒有91次IO操作(r/s+w/s),其中以写操作为主体
- 平均每次IO请求等待时间为120.57毫秒,处理时间为6.33毫秒
- 等待处理的IO请求队列中,平均有11.79个请求驻留

实际查看时,一般结合着多个选项查看: 如iostat -dxm 3

[root@yg-uhost724 ~]# iostat -dxm 5
Linux 2.6.32-279.19.16.el6.ucloud.x86_64 (yg-uhost724)  06/12/2017  _x86_64_    (24 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.69    29.89    1.36   21.52     0.05     0.20    23.04     0.04    1.96   0.29   0.67
sdb             682.88  1811.86   77.94  417.73     2.97     8.71    48.27     0.01    0.03   0.10   4.89
dm-14             0.00     0.00    0.03   41.47     0.00     0.16     8.00     0.01    0.12   0.02   0.10
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     8.00     0.00    7.24   0.07   0.00
dm-2              0.00     0.00    0.00    0.00     0.00     0.00     8.00     0.00    0.07   0.04   0.00
dm-3              0.00     0.00    0.00    0.98     0.00     0.00     8.00     0.00    3.57   0.22   0.02
dm-5              0.00     0.00    0.18   50.51     0.00     0.20     8.00     0.03    0.44   0.01   0.07
dm-1              0.00     0.00    1.50    5.51     0.01     0.02     8.00     0.03    4.04   0.04   0.03
dm-6              0.00     0.00  123.23 1042.56     0.48     4.07     8.00     0.01    0.01   0.02   1.90
dm-4              0.00     0.00  635.74 1069.59     2.48     4.18     8.00     0.00    0.04   0.01   2.39
sdc               7.23   106.32    0.52    0.94     0.03     0.42   627.54     0.02   13.32  17.58   2.58

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00    15.00    0.40   17.80     0.00     0.10    10.90     0.00    0.10   0.10   0.18
sdb              82.60 11967.00  414.60 2500.20     1.94    56.51    41.07    12.07    4.14   0.07  21.02
dm-14             0.00     0.00    0.00    0.20     0.00     0.00     8.00     0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-2              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-3              0.00     0.00    0.00    1.80     0.00     0.01     8.00     0.00    0.11   0.11   0.02
dm-5              0.00     0.00    0.00    2.00     0.00     0.01     8.00     0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    2.40     0.00     0.01     8.00     0.01    4.17   1.25   0.30
dm-6              0.00     0.00    0.00   45.20     0.00     0.18     8.00     0.11    2.45   0.55   2.48
dm-4              0.00     0.00  497.20 14415.80     1.94    56.31     8.00    72.87    4.83   0.01  19.14
sdc               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
RTOS任务调度原理:高优先级任务为何在低优先级任务执行时无法响应 实时操作系统(RTOS)的核心在于其确定性的任务调度机制,它通过优先级抢占确保关键任务及时执行。其基本原理是调度器仅在特定调度点(如任务主动阻塞、中断退出时)运行,比较就绪态任务的优先级并切换上下文。这一机制的技术价值在于为嵌入式系统提供可预测的响应时间,广泛应用于工业控制、汽车电子和物联网设备等对实时性要求高的场景。当低优先级任务执行**长时间非阻塞运算**且无中断发生时,调度器无法被触发,导致高优先级任务虽处于就绪态却无法获得CPU,造成系统响应延迟。理解**任务状态机**与调度点,是优化实时性、避免此 阅读详情

相关推荐

从多项式到神经网络:DPD算法演进史及其在RRU中的工程实现

本文系统梳理了数字预失真(DPD)算法从经典多项式模型、查表法到神经网络驱动的演进历程,并深入探讨了其在基站射频单元(RRU)中面临的硬件资源约束与工程实现挑战。文章为通信设备的技术决策者提供了算法选型、性能权衡及混合架构设计的实用评估框架,助力在性能、功耗与成本间找到最优平衡。

cherry的博客 1076

【Linux系列-2】iostat命令详解

ostat命令详解1 iostat简介2 命令与参数项2.1 命令格式2.2 参数详解3 输出项目说明3.1 cpu属性3.2 磁盘属性4 使用实例4.1 查看磁盘详情5 深入解析5.1 avgqu-sz5.2 await5.3 %util 1 iostat简介 iostat命令是Linux系统上查看I/O性能最基本的工具,其全称为 I/O statistics。iostat能统计磁盘活动情况,也...

云深不知处 1万+

JS自动化生成大疆WPML航线文件实战(附完整代码与云台控制解析)

本文详细介绍了如何利用JavaScript自动化生成大疆WPML航线文件,以解决手动规划航线效率低、易出错的问题。通过解析WPML文件结构,特别是云台控制等核心参数,并封装可复用的JS模板函数,开发者能够快速批量生成复杂航线,如倾斜摄影五向飞行,实现航测与巡检任务的标准化与高效执行。

weixin_29007243的博客 299

iostat 命令详解

目录 引言: 一、概述 二、iostat用法 1.用法:iostat [选项] [<时间间隔>] [<次数>] 2. 命令参数: 3.示例: 1.显示所有设备的负载情况 2.iostat -m 以M为单位显示所有信息 3.iostat -d sda 显示指定硬盘信息 4.iostat -t 报告每秒向终端读取和写入的字符数 5.iostat -d -k 1 1 查看TPS和吞吐量信息 6.iostat -d -x -k 1 1 ...

weixin_67470255的博客 1万+

Docker一键部署Synopsys EDA全家桶(VCS/Verdi 2018版)保姆级教程

本文提供了一份详尽的Docker容器化部署Synopsys EDA工具链(VCS/Verdi 2018版)的保姆级教程。通过环境隔离与标准化,解决传统安装的依赖冲突问题,并重点攻克了容器内GUI图形界面显示的核心难题。教程涵盖从Docker基础安装、镜像获取、容器启动配置,到使用X11转发或VNC实现Verdi完美显示的完整实践,旨在帮助芯片设计工程师快速构建稳定、可移植的一键化EDA工作环境。

weixin_29281941的博客 198

基于python的超市历年数据可视化分析

包含:Order_Date Sales Quantity Profit year month。所有这些物品都在美国4个地区的49个州销售,来着793位客户的5009个订单。9994行,21列数据。

m0_74872863的博客 535

【Linux系列-2】iostat命令详解,Linux运维面试超详细知识点

rrqm/s:每秒合并读操作的次数,如果两个读操作读取相邻的数据块时,可以被合并成一个,以提高效率。r_await:每个读操作平均所需要的时间,不仅包括硬盘设备读操作的时间,也包括在内核队列中的时间。await:平均每个IO所需要的时间,包括在队列等待的时间,也包括磁盘控制器处理本次请求的有效时间。w_wait:每个写操平均所需要的时间,不仅包括硬盘设备写操作的时间,也包括在队列中等待的时间。IO请求的队列长度,反映了系统磁盘任务处理的繁忙程度,该值越大,表示排队等待处理的IO请求越多。

2401_84266125的博客 792

Zemax序列模式下激光二极管(LD)光源建模与像散校正实战

本文详细讲解了在Zemax序列模式下精确建立激光二极管(LD)光源模型并校正其像散的核心方法。通过将椭圆光束的发散角转换为渐晕系数,并巧妙利用理想柱面镜模拟像散,实现了对LD光源特性的高精度模拟。该方法特别适用于激光耦合、激光雷达等需要对像散光束进行精密控制的光学系统设计。

weixin_28455801的博客 437

Linux性能监控-IO-iostat 命令详解

1 简介 Linux系统中的iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。 2 iostat命令格式 iostat [参数] [时间周期...

prcyang的专栏 855

基于YOLOv8的野生菌菇检测、识别与分类系统

YOLOv8是YOLO系列模型的最新版本,继承了YOLO系列高效、精确的特点。YOLOv8采用了新的网络架构,并优化了推理速度和检测精度。与传统的目标检测算法(如Faster R-CNN)不同,YOLO模型通过一次前向传播同时完成目标定位与分类,因而具有非常高的计算效率。

YOLO 1284

(三十九)Flask 多应用架构(Multiple Apps)与 DispatcherMiddleware 实战解析

(三十九)Flask 多应用架构(Multiple Apps)与 DispatcherMiddleware 实战解析

孤寒者的博客 1万+

Linux IO实时监控iostat命令详解

简介 iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。   语法 iostat [ -c ] [ -d ] [ -h ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ] [ ...

weixin_33904756的博客 738

Python爬虫实战:高效爬取中国专利数据库的完整指南

在当今信息爆炸的时代,专利数据作为技术创新的重要指标,对企业研发、市场分析和学术研究都具有极高价值。中国作为全球专利申请量最大的国家,其专利数据库包含了海量的技术创新信息。本文将详细介绍如何使用Python最新技术构建一个高效、稳定的中国专利数据库爬虫系统。中国专利数据库主要由国家知识产权局(CNIPA)维护,包含发明专利、实用新型专利和外观设计专利三大类。截至2023年,中国专利数据库已收录超过400万件发明专利和300万件实用新型专利。

2201_76125261的博客 1572

【转】使用iostat分析linux的io性能

最近在做性能测试。发现集群中,有一个机器的io比较大。还不是太熟悉linux下的io如何评测。搜索到了如下的文章,挺好的,记录一下,分析io的一个不错的方法。# iostat -x 1 10Linux 2.6.18-92.el5xen    02/03/2009avg-cpu:  %user   %nice %system %iowait  %steal   %idle        

danyajuan的专栏 721

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

[Linux] 使用iostat分析IO性能

对于I/O-bond类型的进程,我们经常用iostat工具查看进程IO请求下发的数量、系统处理IO请求的耗时,进而分析进程与操作系统的交互过程中IO方面是否存在瓶颈。   下面通过iostat命令使用实例,说明使用iostat查看IO请求下发情况、系统IO处理能力的方法,以及命令执行结果中各字段的含义。   1.不加选项执行iostat 我们先来看直接执行iostat

SuSe的专栏 2796

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

linux iostat io高,Linux 使用iostat分析IO性能

对于I/O-bond类型的进程,我们经常用iostat工具查看进程IO请求下发的数量、系统处理IO请求的耗时,进而分析进程与操作系统的交互过程中IO方面是否存在瓶颈。下面通过iostat命令使用实例,说明使用iostat查看IO请求下发情况、系统IO处理能力的方法,以及命令执行结果中各字段的含义。1.不加选项执行iostat我们先来看直接执行iostat的输出结果:linux # iostatLi...

weixin_35582019的博客 276

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

上一篇: 使用Linux的lsblk命令列出块设备信息
下一篇: 通配符和正则表达式
森几许
博客等级 码龄18年 13粉丝 15原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值