高性能MySQL:如何阅读vmstat的输出

作者:港云互联 时间:2020-01-08

        我们先看一个vmstat的例子。用下面的命令让它每5秒钟打印出一个报告,可以用Ctrl+C 停止vmstat。可以看到输出依赖于所用的操作系统,因此可能需要阅读一下手册来解读报告。



        刚启动不久,即使采用增量报告,第一行的值还是 显示自系统启动以来的平均值,第二行开始展示现在正在发生的情况,接下来的行会展示每5秒的间隔内发生了什么。每一列的含义在头部,如下所示:

高性能MySQL:如何阅读vmstat的输出


procs



        r这一列显示了多少进程正在等待CPU, b列显示多少进程正在不可中断地休眠(通常意味着它们在等待I/O,例如磁盘、网络、用户输入,等等)。



memory



        swpd列显示多少块被换出到了磁盘(页面交换)。剩下的三个列显示了多少块是空闲的(未被使用)、多少块正在被用作缓冲,以及多少正在被用作操作系统的级存。



swap


        这些列显示页面交换活动:每秒有多少块正在被换入(从磁盘)和换出(到磁盘)。它们比监控swpd列重要多了。大部分时间我们喜欢看到si和so列是0,并且我们很明确不希望看到每秒超过10个块。突发性的高峰一样很精糕。



io



        这些列显示有多少块从块设备读取(b1) 和写出(bo)。 这通常反映了硬盘I/O。



system



        这些列显示了每秒中断(in)和上下文切换(cs) 的数量。



cpu



        这些列显示所有的CPU时间花费在各类操作的百分比,包括执行用户代码(非内核)。执行系统代码(内核),空闲,以及等待1/O。如果正在使用虚拟化,则第五个列可能是st,显示了从虚拟机中“偷走” 的百分比。这关系到那些虚拟机想运行但是系统管理程序转而运行其他的对象的时间。如果胎拟机不希望运行任何对象,但是系统管理程序运行了其他对象,这不算被偷走的CPU时间。



        mstat的输出跟系统有关,所以如果看到跟我们展示的例子不同的输出,应该阅读系统的vmstat(8)手册。. 个重要的提示是:内存, 交换区,以及1I0统计是块数而不是字节。在GNU/Linux,块大小通常是1024字节。


新人注册,即送价值满880元现金劵

立即注册>>
反馈 活动 回顶部