iostat

iostat指令用来显示cpu状态,系统IO设备的状态,以及相关磁盘和NFS使用状态。iostat命令通过观察设备相对于其平均传输速率的活动时间来监视系统输入/输出设备负载。iostat命令生成可用于更改系统配置的报告,以更好地平衡物理磁盘之间的输入/输出负载。

iostat命令生成的第一个报告提供了自系统启动以来的统计数据,除非在省略该第一个报告时使用-y选项。每一份后续报告都涵盖自上次报告以来的时间。每次运行iostat命令时都会报告所有统计信息。报告由CPU标题行和CPU统计数据行后面的一行组成。在多处理器系统中,CPU统计数据作为所有处理器之间的平均值计算在系统范围内.设备标题行后面显示配置的每个设备的一行统计信息。当使用选项-n时,会显示NFS标题行,并为每个已挂载的网络文件系统显示一行统计信息。

此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、Fedora、SUSE、openSUSE。

 

1、语法

     iostat  [选项]

 

2、选项列表

选项

说明

-c

显示cpu情况

-d

显示设备利用率

-h

配合-n选项使用,让输出更加易读

-j

显示指定设备的名字、id、label

-k

以“kb/s”为单位显示,默认使用“块/s”为单位

-m

以Mb/s为单位

-N

显示注册设备的映射名字

-n

显示NFS状态

-p

显示块设备状态

-t

显示报告时间

-x

显示扩展信息

-V

显示版本信息,并且退出

-y

如果在给定间隔内显示多个记录,则自系统启动以来省略带有统计信息的第一次报告。

-z

告诉iostat,对于在示例期间没有活动的任何设备,都要省略输出。

 

3、报告

iostat命令生成三种类型的报告:CPU利用率报告、设备使用报告和网络文件系统报告。

1)CPU利用率报告

iostat命令生成的第一个报告是CPU利用率报告。对于多处理器系统,CPU值是所有处理器之间的全局平均值。报告的格式如下:

报告内容

说明

%user

显示在用户级别(应用程序)执行时CPU利用率的百分比。

%nice

以良好的优先级在用户级别执行时显示CPU利用率的百分比。

%system

显示在系统级(内核)执行时出现的CPU利用率百分比。

%iowait

显示CPU或CPU空闲的时间百分比,在此期间,系统有未执行的磁盘I/O请求。

%steal

显示虚拟机管理程序为另一个虚拟处理器服务时,虚拟CPU或CPU在非自愿等待中花费的时间百分比。

%idle

显示CPU或CPU空闲的时间百分比,并且系统没有未执行的磁盘I/O请求。

2)设备使用报告

iostat命令生成的第二个报告是设备使用报告。设备报告提供每个物理设备或分区的统计信息。可以在命令行上输入要显示统计信息的块设备。如果不使用-x选项,也可以在命令行中输入分区。如果没有输入设备或分区,则为系统使用的每个设备显示统计信息,并提供内核为其维护统计信息。如果在命令行上给出ALL关键字,则会显示系统定义的每个设备的统计信息,包括从未使用过的设备。报告可能会显示以下字段,这取决于所使用的标志

报告内容

说明

Device:

该列给出了nth设备的设备(或分区)名称,它以devm-n的形式显示,内核为2.4,其中m是设备的主要数字,n是一个独特的数字。对于较新的内核,将显示/dev目录中列出的设备名称。

tps

指示每秒发送给设备的传输次数。传输是对设备的I/O请求。多个逻辑请求可以组合成对设备的单个I/O请求。转移是不确定的大小。

Blk_read/s

指示从设备读取的数据量,以每秒多个块表示。块等效于内核2.4及更高版本的扇区,因此其大小为512字节。对于较老的核,块的大小是不确定的。

Blk_wrtn/s

指示写入设备的数据量,以每秒多个块表示。

Blk_read

读入的总块数

Blk_wrtn

写入的总块数

kB_read/s

指示从设备读取的数据量,以每秒千字节表示。

kB_wrtn/s

指示从设备写入的数据量,以每秒千字节表示。

kB_read

读取的总量,kb

kB_wrtn

写入的总量,kb

MB_read/s

指示写入设备的数据量,以每秒兆字节表示。

MB_wrtn/s

指示读取设备的数据量,以每秒兆字节表示。

MB_read

读取的总量,Mb

MB_wrtn

写入的总量,Mb

rrqm/s

每秒合并到设备的读取请求数。

wrqm/s

每秒合并到设备的写入请求数。

r/s

每秒向设备发出的读取请求数。

w/s

每秒向设备发出的写入请求数。

rsec/s

每秒从设备读取的扇区数。

wsec/s

每秒从设备写入的扇区数。

rkB/s

每秒从设备读取的千字节数。

wkB/s

每秒从设备写入的千字节数。

rMB/s

每秒从设备读取的兆字节数。

wMB/s

每秒从设备写入的兆节数。

avgrq-sz

向设备发出的请求的平均大小(按扇区)

avgqu-sz

向设备发出的请求的平均队列长度。

await

向要服务的设备发出I/O请求的平均时间(毫秒)。这包括请求在队列中花费的时间和服务它们的时间。

svctm

向设备发出的I/O请求的平均服务时间(毫秒)。警告!不要再相信这个领域了。此字段将在以后的sysstat版本中删除。

%util

向设备发出I/O请求的CPU时间百分比(设备的带宽利用率)。当此值接近100%时,设备饱和发生。

3)NFS报告

NetworkFilessystem(NFS)报告为每个挂载的网络文件系统提供统计信息。报告显示了以下领域:

报告内容

说明

Filesystem:

此列显示NFS服务器的主机名,后面是冒号,以及安装网络文件系统的目录名。

rBlk_nor/s

指示应用程序通过Read(2)系统调用接口读取的块数。块的大小为512字节。

wBlk_nor/s

指示应用程序通过写(2)系统调用接口编写的块数。块的大小为512字节。

rBlk_dir/s

指示从使用O_DIRECT标志打开的文件中读取的块数。

wBlk_dir/s

指示写入使用O_DIRECT标志打开的文件的块数。

rBlk_svr/s

指示NFS客户端通过NFS读取请求从服务器读取的块数。

wBlk_svr/s

指示NFS客户端通过NFS读取请求从服务器写入的块数。

rkB_nor/s

指示应用程序通过Read(2)系统调用接口读取的千字节数。

wkB_nor/s

指示应用程序通过write(2)系统调用接口编写的千字节数。

rkB_dir/s

指示从使用O_DIRECT标志打开的文件中读取的千字节数。

wkB_dir/s

指示写入到使用O_DIRECT标志打开的文件中的千字节数。

rkB_svr/s

指示NFS客户端通过NFS读取请求从服务器读取的千字节数。

wkB_svr/s

指示NFS客户端通过NFS读取请求从服务器写入的千字节数。

rMB_nor/s

指示应用程序通过Read(2)系统调用接口读取的兆字节数。

wMB_nor/s

指示应用程序通过write(2)系统调用接口编写的兆字节数。

rMB_dir/s

指示从使用O_DIRECT标志打开的文件中读取的兆字节数。

wMB_dir/s

指示写入到使用O_DIRECT标志打开的文件中的兆字节数。

rMB_svr/s

指示NFS客户端通过NFS读取请求从服务器读取的兆字节数。

wMB_svr/s

指示NFS客户端通过NFS读取请求从服务器写入的兆字节数。

ops/s

指示每秒向文件系统发出的操作数。

rops/s

指示每秒向文件系统发出的“读”操作数。

wops/s

指示每秒向文件系统发出的“写”操作数。

 

4、环境变量

iostat命令考虑了以下环境变量:

S_TIME_FORMAT,如果存在此变量,且其值为ISO,则在报表标题中打印日期时,将忽略当前区域设置。iostat命令将使用ISO 8601格式(YYYY-MM-DD)。选项-t显示的时间戳也将符合ISO 8601格式。

 

5、例子代码

iostat

为所有CPU和设备显示自启动报告以来的单个历史记录

iostat –d 2

以两秒钟间隔显示连续设备报告

iostat –d 2 6

对所有设备每隔两秒钟播放六次报告

iostat -x hda hdb 2 6

以两秒钟的间隔显示六份扩展统计报告,用于设备HDAHDB

iostat -p sda 2 6 

为设备SDA及其所有分区(sda 1)以两秒钟间隔显示六个报告。

 

6、实例

1)显示cpu情况

[root@localhost ntop-4.0.1]# iostat –c                  //只显示cpu状态

Linux 2.6.32-431.el6.i686 (localhost.localdomain)    20181010   _i686_ (1 CPU)

 

avg-cpu:  %user   %nice %system %iowait %steal   %idle

           0.17    0.00    0.11    0.04    0.00   99.68

 

You have new mail in /var/spool/mail/root

[root@localhost ntop-4.0.1]# 

2)显示nfs系统状态

[root@localhost ntop-4.0.1]# iostat -n -h –t               //显示nfs状态,要求显示出时间

Linux 2.6.32-431.el6.i686 (localhost.localdomain)    20181010   _i686_ (1 CPU)

 

20181010 173411

Filesystem:              rBlk_nor/s   wBlk_nor/s   rBlk_dir/s   wBlk_dir/s   rBlk_svr/s   wBlk_svr/s     ops/s   rops/s    wops/s

 

[root@localhost ntop-4.0.1]# 

Linux基础命令---iostat显示设备状态的更多相关文章

  1. Linux基础命令---netstat显示网络状态

    netstat netstat指令可以显示当前的网络连接.路由表.接口统计信息.伪装连接和多播成员资格等信息. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.open ...

  2. Linux基础命令---vmstat显示虚拟内存状态

    vmstat vmstat指令用来显示虚拟内存使用状态,同时也可以显示进程.cpu活动情况.vmstat报告有关进程.内存.分页.块IO.陷阱和CPU活动的信息.生成的第一份报告给出了自上次重新启动以 ...

  3. Linux基础命令---sar显示系统活动信息

    sar sar指令用来收集.报告.保存系统的活动信息.sar命令将操作系统中选定的累积活动计数器的内容写入标准输出.会计系统根据参数“interval”.“count”中的值,写入以秒为单位的指定间隔 ...

  4. Linux基础命令---nfsstat显示nfs信息

    nfsstat nfsstat指令用来显示nfs客户端和服务器的活动信息. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.Fedora. 1.语法       nfsstat  ...

  5. Linux基础命令---top显示进程信息

    top top指令用来显示Linux的进程信息,这是一个动态显示的过程.top提供运行系统的动态实时视图.它可以显示系统摘要信息以及当前由Linux内核管理的任务列表.所显示的系统摘要信息的类型以及为 ...

  6. Linux基础命令---mpstat显示cpu使用

    mpstat mpstat指令用来显示cpu的使用状况,将内容显示到标准输出.处理器0是第一个.还报告了所有处理器之间的全球平均活动.mpstat命令既可以在SMP机器上使用,也可以在UP机器上使用, ...

  7. Linux基础命令---uname显示计算机名称

    uname uname指令用来显示计算机硬件以及操作系统的相关信息,例如计算机名.内核版本.硬件架构. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.Fedora.SUSE.o ...

  8. Linux基础命令---文本显示tac

    tac 将指定文件中的行,按照反序方式显示.此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语法         tac [选项] ...

  9. Linux基础命令---tail显示文本

    tail 显示文本文件尾部的部分内容,默认显示最后10行. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语法         ...

随机推荐

  1. [LeetCode] Swim in Rising Water 在上升的水中游泳

    On an N x N grid, each square grid[i][j] represents the elevation at that point (i,j). Now rain star ...

  2. IntelliJ IDEA 2017.2.6 x64 配置 tomcat 启动 maven 项目

    IntelliJ IDEA 2017.2.6 x64 配置 tomcat 启动 maven 项目 1.确认 IDEA 是否启用了 tomcat 插件 2.添加 tomcat 选择 tomcat 存放路 ...

  3. spring boot异常积累

    1.异常:Error resolving template "xxx", template might not exist or might not be accessible.. ...

  4. [dev][ipsec] 什么是xfrm

    简介: http://nody-techhome.blogspot.com/2008/09/xfrm-overview.html (没啥用) 内核xfrm.ipsec的流程.写的特别清晰明了. htt ...

  5. 关于parseInt()里的一些小坑

    parseInt(string,radix)方法是将输入字符串转化为数值,两个输入参数中string为要转化的字符串,radix可省略,是浏览器以几进制来解读输入的string. 举几个例子就能够对该 ...

  6. com.alibaba.druid.pool.DruidDataSource : {dataSource-2} init error

    这几天准备写一个项目,其中的整合druid的时候,发现出现了下面这个错误.找了好久都没有找到.网上的各种解决方法都不对. 2018-11-07 16:26:28.940 INFO 19684 --- ...

  7. Linq中join多字段匹配

    错误示范: var projectSubmitInfos = (from project in db.T_PM_Project join member in db.T_PM_Member on pro ...

  8. Xpath语法详解

    1.简介 XPath是一门在XML和HTML文档中查找信息的语言,可以用来在XML和HTML文档中对元素和属性进行遍历 XPath的安装 Chrome插件XPath Helper 点Chrome浏览器 ...

  9. php中pcntl_fork详解

    pcntl_fork()函数是php-pcntl模块中用于创建进程的函数.(不支持windows) 至于php_pcntl扩展如何安装开启这里就不介绍了,只分析pcntl_fork()这个函数本身. ...

  10. linux运维需要掌握什么知识?linux运维学习路线

    linux运维需要掌握什么知识?这个问题算是老生常谈了,但是本人认为知道需要掌握什么知识不是重点,重点是我们需要知道运维是做什么的?再来根据工作需求去讨论需要学习什么知识才是正途,须知知识是学不完的, ...