10.2 vmstat命令

监控系统状态

  • vmstat 命令,监控系统状态
  • 用法 vmstat 1
  • 关键的几列:r ,b,swpd,si,so,bi,us,wa

vmstat命令

  • 用 w 命令查看系统的负载,当系统的负载值偏高时,mysql

    • 好比:数值大于CPU核数,那说明CPU不够用了,就须要去思考是什么缘由致使的?个人进程在干什么?有哪些任务在使用CPU呢?
  • vmstat 命令,能够查看到CPU、内存、虚拟磁盘交换分区、I/O(就是你的磁盘)、系统进程等sql

    • 格式 : vmstat 1 表示每一秒动态显示一次
      • 数字1表示:每一秒钟动态显示一次
      • 结束的时候,按快捷键ctrl+c 将它终止掉
    • 格式:vmstat 1 5 表示每一秒显示一次,只需显示五次
      • 而后它会自动结束
[root@localhost ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 681860    692 164808    0    0     7     0   13   15  0  0 100  0  0
[root@localhost ~]# vmstat 1    //表示每一秒动态显示一次
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 681860    692 164840    0    0     7     0   13   15  0  0 100  0  0
 0  0      0 681836    692 164840    0    0     0     0   19   22  0  0 100  0  0
 0  0      0 681836    692 164840    0    0     0     0   16   15  0  0 100  0  0
 0  0      0 681836    692 164840    0    0     0     0   14   12  0  0 100  0  0
^C
[root@localhost ~]# vmstat 1 5    //表示每一秒显示一次,只需显示五次
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 681836    692 164840    0    0     7     0   13   15  0  0 100  0  0
 0  0      0 681812    692 164840    0    0     0     0   19   23  0  0 100  0  0
 0  0      0 681812    692 164840    0    0     0     0   15   12  0  0 100  0  0
 0  0      0 681812    692 164840    0    0     0     0   14   15  0  0 100  0  0
 0  0      0 681812    692 164840    0    0     0     0   15   13  0  0 100  0  0
[root@localhost ~]#
  • 这里的信息只须要关注这几列,r列,b列,swpd列,si列,so列,bi列,bo列,us列,wa列操作系统

    • r 英文单词(run),表示多少个进程处于 run 的状态
      • 在排着队,或者在进行中的进程,都属于run 的状态
    • b 英文单词(block),表示进程被CPU之外的资源给占用,处于一个等待的状态
    • swpd 在磁盘分区的时候,有一个swap空间,当内存不够使用时,能够把内存里的一部分数据临时放到swap空间里去
      • 当内存不够的时候,会使用swap空间。
        • 当swpd数字不变时,则没有关系;
        • 如果数字在持续的变化,那说明你的交换分区和你的磁盘在频繁的交换数据——>这只有一个结果,就是你的内存不够用了
    • si,so 和swpd是有相关联的,在swpd在频繁的改变,那么你的si,so确定也是会存在数字变动的
      • si 表示有多少个的数据,有多少个块(单位:KB)——>有多少个KB的数据,从swap进入到内存中,这就是si
    • so 表示有多少个KB的数据,从内存中出来,就是 so
      • si和so的参照物就是——>内存
    • bi和bo是跟磁盘是有关系的
      • bi 就是从磁盘里出来,进入到内存中去的,这个就是 读 ,表示读的数据量有多少
      • bo 就是写入到磁盘里去,这个就是 写 ,表示写的数据量有多少
        • 若 bi 和 bo 这两个数值很大的话,就表示磁盘在频繁的读写
        • 磁盘i/o相比较CPU、内存也好都是很慢的,有不少的数据在读写,会形成 b列增长,由于有不少进程在等待磁盘,这是一个必然的结果
      • 当 bi和bo 值 上 5千 的时候就须要注意了
    • us 表示用户态的一些资源,占用CPU的百分比
      • 好比,操做系统不可能只运行一个系统, 还会运行系统上的服务 mysql等,这就会占用一部分cpu资源,就会体如今 us 这一部分
      • us的数字不会超过 100 ,由于一共就百分百,上面显示的就是百分比
      • 当 us 的数字长时间大于50 ,就说明你的系统资源不够了
    • sy 表示系统自己的一些进程,服务占用的百分比
    • id 表示空闲
    • us + sy + id 值 约等于100%
    • wa 英文(wait),表示等待CPU的百分比,有多少个进程在等待CPU,若这一列很大,说明CPU不够用—>和b列有点相似
  • 咱们能够经过vmstat 命令,判断出系统的瓶颈在哪里,是CPU不够,仍是内存不够,仍是磁盘i/o太大,均可以断定出来。code

相关文章
相关标签/搜索