Linux系统出现了性能问题,一般我们可以通过top、iostat、free、vmstat等命令来查看初步定位问题。在一个以前看到系统监控工具,总在想那些监控工具的代理,如何收集系统性能信息,io性能,cpu使用,带宽使用等信息,偶然发现,不同系统均提供有性能分析工具的,代理可通过这些命令获取系统性能信息,个人猜测,不知道具体是不是这样的。其中iostat可以给我们提供丰富的IO状态数据,下边就来看一下iostat如何使用,命令能够输出那些信息。
Linux系统中通过iostat我们能查看到系统IO状态信息,从而确定IO性能是否存在瓶颈。
2. iostat命令的使用方法
语法:
iostat [选项] [时间间隔] [次数]
选项:
-c:只显示cpu统计。
-x:显示更详细的IO性能信息。
-d:单独显示IO信息,不显示cpu信息。
-k/m:输出结果以kB/mB为单位,而不是扇区单位。
3.实例
3.1 每隔一秒显示一次IO信息,显示2次。-d -x -k
iostat -d -x -k 1 2
解释:
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队列非空的时间比率
重点关注参数
1、iowait% 表示CPU等待IO时间占整个CPU周期的百分比,如果iowait值超过50%,或者明显大于%system、%user以及%idle,表示IO可能存在问题。
2、avgqu-sz 表示磁盘IO队列长度,即IO等待个数。
3、await 表示每次IO请求等待时间,包括等待时间和处理时间
4、svctm 表示每次IO请求处理的时间
5、%util 表示磁盘忙碌情况,一般该值超过80%表示该磁盘可能处于繁忙状态。
3.2 每隔一秒显示一次cpu信息,显示2次。-d -x -k
iostat -c 1 2
参考:https://www.cnblogs.com/linyfeng/p/7707237.html
原文地址:http://blog.51cto.com/11060853/2113563