本帖最后由 CQxxk 于 2019-9-26 18:40 编辑
上一篇文章详细介绍了使用top命令来整体的检查Linux系统负载的情况,本次主要讲如何通过命令来判断Linux系统IO的情况,是否是因为磁盘IO问题导致的系统卡慢或者服务异常。本次讲到的命令是iostat。 iostat命令 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。 在判断磁IO 之前,首先我们需要确认系统挂载了几块磁盘,确认磁盘数量可以通过lsblk命令来查看,执行结果如下,可以看到本次演示的虚拟机挂载了四块磁盘: 接下来进入重点,我们先来看一下iostat命令默认的执行情况: avg-cpu: 1、默认执行结果可以看到系统CPU(avg-cpu)的状态,此处主要关注%iowait和%idle的数值,%iowait表示CPU等待IO完成时间比,如果数值过高,表示CPU等待磁盘IO延时比较高,此时可能存在磁盘IO瓶颈。%idle表示CPU空闲时间比,数值越低表示CPU越繁忙,如果持续低于%10则需要解决CPU资源。 1、Device各列表示:每秒传输次数,每秒读取的数据量、每秒写入数据量、以及读、写总量。在这里我们不太容易判断出磁盘是否存在IO瓶颈,通常我们会加相关参数来显示更详细的信息来判断。 重要参数 在使用iostat命令时我们通常会搭配以下参数得到我们想要的结果: -m 以M字节显示统计信息 -x 显示扩展信息 我们来看一下使用了-m -x参数以后的结果: 此时我们可以看到关于每块磁盘显示的信息更加全面了,那么哪些是对我们分析比较有帮助的呢?此时我们主要关注以下两个参数: await:平均每次设备IO操作等待的时间(单位毫秒) %util:1秒内IO队列非空闲时间比 当%util接近或者等于100%表明IO请求太多,满负荷了。await数值较大时表示磁盘延时比较高,存在性能瓶颈。 小技巧 通常在使用iostat命令时都不会只看一次输出的数据,会根据不同的采样频率打印多次的结果来判断,因此在使用iostat -m -x时还可以加上采样频率和打印次数,如每隔两秒采样一次,打印3次结果可以使用如下命令:iostat -m -x 2 3
|