Linux下使用iostat命令生成CPU和I/O的统计报告

本文发布时间: 2019-Mar-22
ostat通过观察设备的活跃时间和他们平均传输率之间的关系来监视系统的输入/输出设备负载。iostat生成的报告可以用于修改系统配置从而更好在物理硬盘间平衡输入/输出的报告。安装 iostat yum install sysstat要运行它,只需在控制台下输入iostat第一部分包含了CPU报告%user : 显示了在执行用户(应用)层时的CPU利用率%nice : 显示了在以nice优先级运行用户层的CPU利用率%system : 显示了在执行系统(内核)层时的CPU利用率%iowait : 显示了CPU在I/O请求挂起时空闲时间的百分比%steal : 显示了当hypervisor正服务于另外一个虚拟处理器时无意识地等待虚拟CPU所占有的时间百分比。%idle : 显示了CPU在I/O没有挂起请求时空闲时间的百分比第二部分包含了设备利用率报告Device : 列出的/dev 目录下的设备/分区名称tps : 显示每秒传输给设备的数量。更高的tps意味着处理器更忙。Blk_read/s : 显示了每秒从设备上读取的块的数量(KB,MB)Blk_wrtn/s : 显示了每秒写入设备上块的数量(KB,MB)Blk_read : 显示所有已读取的块Blk_wrtn : 显示所有已写入的块默认上,iostat以B为单位衡量I/O系统。为了更便于阅读,我们可以iostat将报告转换成以KB或者MB为单位。只需要加入-k参数来创建以KB为单位,-m参数来创建以MB为单位。要扩展报告,我们可以在iostat后面跟上-x选项带延迟使用iostat和vmstat一样,作为一个统计工具,最好带延迟参数来使用它。通过延迟参数,我们可以看到趋势。这里有一些带延时运行iostat的示例。以MB为单位,2秒间隔,运行3次的方式运行iostat只显示CPU报告,并以3秒为间隔,报告4次mpstat也可以查看cpu相关情况显示sda1和sda2的设备报告,以2秒为间隔,报告3次[root@SERVER-Test ~]# iostat -d sda1 sda2 2 3Linux 2.6.32-358.18.1.el6.x86_64 (SERVER-Test) 2014年04月08日 _x86_64_ (4 CPU)Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtnsda1 0.00 0.39 0.01 3078694 46236sda2 18.73 94.97 992.08 742920998 7760567792Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtnsda1 0.00 0.00 0.00 0 0sda2 3.50 0.00 60.00 0 120Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtnsda1 0.00 0.00 0.00 0 0sda2 4.50 4.00 116.00 8 232文件iostat使用这些文件来创建报告。/proc/stat 包含了系统统计/proc/partitions 包含磁盘统计/proc/diskstats 包含磁盘统计/sys 包含块设备统计总结vmstat用于监视内存使用,iostat用于监视CPU使用率和I/O系统,这样我们就有了完整的工具来监视你机器中三个重要的组件。在控制台下输入man iostat就可进入iostat手册界面。[root@SERVER-Test ~]# vmstatprocs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 5 861712 280288 496656 19368480 0 0 12 124 1 0 3 1 95 2 0[root@SERVER-Test ~]#输出信息简介r: 运行的和等待运行的进程数,这个值也可以判断是否需要增加CPU(长期大于1)b: 处于不可中断状态的进程数,常见的情况是由IO引起的w: 被交换出去的可运行的进程数。此数由 linux 计算得出,但 linux 并不耗尽交换空间Memory swpd: 虚拟内存使用情况(默认以KB为单位),如果 swpd 的值不为0,或者还比较大,比如超过100M了,但是 si, so 的值长期为 0,这种情况我们可以不用担心,不会影响系统性能。free: 空闲的内存,单位KBbuff: 被用来做为缓存的内存数,单位:KBcache: 作为page cache的内存, 文件系统的cache,如果 cache 的值大的时候,说明cache住的文件数多,如果频繁访问到的文件都能被cache住,那么磁盘的读IO bi 会非常小。Swap si: 从磁盘交换到内存的交换页数量,单位:KB/秒so: 从内存交换到磁盘的交换页数量,单位:KB/秒内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响。磁盘IO和CPU资源都会被消耗。(常有人看到空闲内存(free)很少或接近于0时,就认为内存不够用了,实际上不能光看这一点的,还要结合si,so,如果free很少,但是si,so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。)IO bi: 发送到块设备的块数,单位:块/秒随机磁盘读写的时候,这2个值越大(如超出1M),能看到CPU在IO等待的值也会越大bo: 从块设备接收到的块数,单位:块/秒System in: 每秒的中断数,包括时钟中断cs: 每秒的环境(上下文)切换次数上面这2个值越大,会看到由内核消耗的CPU时间会越多.CPU 按 CPU 的总使用百分比来显示 us:用户进程消耗的CPU时间百分比,值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超过50% 的使用,那么我们就该考虑优化程序算法或者进行加速了sy: CPU 系统使用时间,内核进程消耗的CPU时间百分比,值高时,说明系统内核消耗的CPU资源多,这并不是良性的表现,我们应该检查原因。id: 闲置时间wa: IO等待消耗的CPU时间百分比,值高时,说明IO等待比较严重,这可能是由于磁盘大量作随机访问造成,也有可能是磁盘的带宽出现瓶颈(块操作)。Linux iostat命令输出简要说明 http://www.linuxidc.com/Linux/2013-06/86703.htmLinux iostat命令 http://www.linuxidc.com/Linux/2013-03/80163.htmLinux iostat 命令详解 http://www.linuxidc.com/Linux/2012-03/55736.htm实时系统监控工具mpstat 使用详解 http://www.linuxidc.com/Linux/2012-03/56676.htm


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:10pm
栏目列表