Linux学习之iostat命令详解

时间:2022-10-17 08:07:57

  我们可以用iostat 命令来监视系统输入/输出、设备负载,这通过观察与它们的平均传送速率相关的物理磁盘的活动时间

来实现。iostat 命令生成的报告可以用来更改系统配置,从而更好地平衡物理磁盘和适配器之间的输入/输出负载。当Linux系

统出现性能问题时,用iostat工具查看进程IO请求下发的数量、系统处理IO请求的耗时,进而分析进程与操作系统的交互过程

中IO方面是否存在瓶颈。

一、基本使用

安装命令: yum install sysstat

Linux学习之iostat命令详解

Linux学习之iostat命令详解

输入命令后会自动安装,依赖包没有安装时会提示,输入“ y ”即可。

1.iostat语法

用法:iostat [ 选项 ] [ <时间间隔> [ 次数 ] ] 

Linux学习之iostat命令详解

参数 描述
-c 显示CPU使用情况
-d 显示磁盘使用情况
-N 显示磁盘阵列(LVM)信息
-n 显示NFS使用情况
-k 输出结果以KB为单位显示
-m 输出结果以MB为单位显示
-t 报告每秒向终端读取/写入的字符数和CPU信息
-V 显示版本信息
-x 显示详细的统计信息
-p 显示磁盘和分区的情况

2.单独执行iostat命令

Linux学习之iostat命令详解

由 iostat 命令生成的第一份报告提供了关于自从系统被引导后的时间统计信息,后继的每一份报告都包含自上一次

报告以来的时间。第一行依次显示系统版本信息、主机名、当前日期、CPU位数和CPU个数。

avg-cpu:总体cpu使用情况统计信息,对于多核cpu,这里为所有cpu的平均值。重点关注iowait值,表示CPU用于

等待io请求的完成时间,各参数介绍如下:

  %userCPU处在用户模式下的时间百分比

  %niceCPU处在带NICE值的用户模式下的时间百分比

  %systemCPU处在系统模式下的时间百分比

  %iowaitCPU等待输入输出完成时间的百分比

  %steal管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比

  %idleCPU空闲时间百分比

 Device:各磁盘设备的IO统计信息,参数介绍如下:

  tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device)。

“一次传输”意思是“一次I/O请求”,多个逻辑请求可能会被合并为“一次I/O请求”,“一次传输”请求的大小是未知的。

  kB_read/s:每秒从设备(drive expressed)读取的数据量

  kB_wrtn/s:每秒向设备(drive expressed)写入的数据量

  kB_read:读取的数据总量

  kB_wrtn:写入的数据总量

二、几种常见用法

1. iostat -c 1 5  查看CPU状态,指定时间间隔为1秒,总共显示5次。

Linux学习之iostat命令详解

  如果%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应

慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能

力相对较低,表明系统中最需要解决的资源是CPU。

2. iostat -d sda  查看指定磁盘信息

Linux学习之iostat命令详解

3. iostat -d -k 1 5  查看TPS和吞吐量信息

Linux学习之iostat命令详解

三、获取更详细的IO统计信息

我们可以使用命令 iostat -x -d -k 1 5 来查看设备响应率(%util)和响应时间(await)。

Linux学习之iostat命令详解

rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,

如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge)

wrqm/s:每秒这个设备相关的写入请求有多少被Merge了

r/s:每秒完成的读次数(The number of read requests that were issued to the device per second)

w/s:每秒完成的写次数(The number of write requests that were issued to the device per second)

rkB/s:每秒读数据量(kB为单位)

wkB/s:每秒写数据量(kB为单位)

avgrq-sz:平均每次IO操作的数据量(扇区数为单位)

avgqu-sz:平均等待处理的IO请求队列长度

await:每一个IO请求的处理的平均时间(毫秒为单位)。这里可以理解为IO的响应时间,一般地系统IO响应时间

应该低于5ms,如果大于10ms就比较大了。

r_await:读取请求的平均时间(毫秒为单位)

w_await:写入请求的平均时间(毫秒为单位)

svctm:平均每次IO请求的处理时间(毫秒为单位)

%util:在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,

而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是

100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁

盘使用未必就到了瓶颈)。

参考文档:https://man7.org/linux/man-pages/man1/iostat.1.html

Linux学习之iostat命令详解的更多相关文章

  1. Linux学习之sed命令详解

    概述 sed是stream editor的简称,也就是流编辑器.它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区 ...

  2. linux iostat命令详解 磁盘操作监控工具

    Linux系统中的 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视. 它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况. ...

  3. Linux - iostat命令详解

    简介 iostat可以提供更丰富的IO性能状态数据,iostat命令有两个用途: 输出CPU的统计信息 输出设备和分区的I/O统计信息 命令语法及参数说明 语法: iostat [ -c | -d ] ...

  4. Linux上的free命令详解、swap机制

    Linux上的free命令详解   解释一下Linux上free命令的输出. 下面是free的运行结果,一共有4行.为了方便说明,我加上了列号.这样可以把free的输出看成一个二维数组FO(Free ...

  5. Linux学习之用户配置文件详解&lpar;十四&rpar;

    Linux学习之用户配置文件详解 目录 用户信息文件/etc/password 影子文件/etc/shadow 组信息文件/etc/group 组密码文件/etc/gshadow 用户信息文件/etc ...

  6. &lbrack;转帖&rsqb;Docker学习之Dockerfile命令详解

    Docker学习之Dockerfile命令详解 https://it.baiked.com/system/docker/2436.html 图挺好的 前言 之前,制作镜像的伪姿势搭建已经见过了,今天介 ...

  7. Linux CAT与ECHO命令详解 &lt&semi;&lt&semi;EOF EOF

    Linux CAT与ECHO命令详解 cat命令是Linux下的一个文本输出命令,通常是用于观看某个文件的内容的: cat主要有三大功能: .一次显示整个文件. $ cat filename .从键盘 ...

  8. &lbrack;r&rsqb;Ubuntu Linux系统下apt-get命令详解

    Ubuntu Linux系统下apt-get命令详解(via|via) 常用的APT命令参数: apt-cache search package 搜索包 apt-cache show package ...

  9. Linux CAT与ECHO命令详解

    Linux CAT与ECHO命令详解 cat命令是Linux下的一个文本输出命令,通常是用于观看某个文件的内容的: cat主要有三大功能: 1.一次显示整个文件. $ cat filename 2.从 ...

随机推荐

  1. 【转】数据预处理之独热编码(One-Hot Encoding)

    原文链接:http://blog.csdn.net/dulingtingzi/article/details/51374487 问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. ...

  2. 项目中如果管理前端文件CSS和JS

    如何管理CSS和JS文件,一直是前端一个热门的话题.下面将简单分享一下使用心得,欢迎大家吐槽.拍砖和提供更好的实现方式. 一.管理CSS文件,本博客将讨论less管理. iReset.less.iBu ...

  3. ThinkPHP使用Memcached缓存数据

    ThinkPHP默认使用文件缓存数据,支持Memcache等其他缓存方式,有两个PHP扩展:Memcache和Memcached,Memcahe官方有说明,主要说一下Memcached. 相对于PHP ...

  4. JAVA 对象内存分析

    1.jmap -heap pid 或者 jmap -histo pid 2.jmap -dump:file=folder/dumpFileName.txt,format=b pid 3.对3的输出文件 ...

  5. Linux替换命令

    :s/^.*$/\L&/100 ##将100行内的小写转换成大写 vi/vim 中可以使用 :s 命令来替换字符串. :s/vivian/sky/ 替换当前行第一个 vivian 为 sky ...

  6. IISEXPRESS64位运行

    调试时使用IISEXPRESS 64位.经网上查找这样开启

  7. LINQ之路11:LINQ Operators之过滤&lpar;Filtering&rpar;

    在本系列博客前面的篇章中,已经对LINQ的作用.C# 3.0为LINQ提供的新特性,还有几种典型的LINQ技术:LINQ to Objects.LINQ to SQL.Entity Framework ...

  8. LNMP的并发配置和资源分配

    PHP程序性能如何?程序的并发可以达到多少?程序的瓶颈在哪儿?为了满足业务需求应该购买多少台服务器?负载均衡中php应用服务器需要多少台? LNMP中的N是nginx充当Web Server 内容的分 ...

  9. github上fork了别人的项目后,再同步更新别人的提交&lpar;转&rpar;

    原文地址:github上fork了别人的项目后,再同步更新别人的提交 我从github网站和用git命令两种方式说一下. github网站上操作 打开自己的仓库,进入code下面. 点击new pul ...

  10. 提高myEclipse的开发效率和外观,这些你都设置了吗?

    [前言] 为什么我的myeclipse开启速度那么慢,为什么别人能哗啦啦几个快捷键打出一片代码?刚开始使用myeclipse的时候,相信大家都有这个疑问,慢慢的,也懂得一些配置,我也不例外,在此,把常 ...