博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【随笔】vmstat性能监测
阅读量:5101 次
发布时间:2019-06-13

本文共 1578 字,大约阅读时间需要 5 分钟。

  vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。相比top,vmstat可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。

  使用vmstat命令可以输出一条服务器状态信息:

  

  可以在vmstat命令后添加2个参数,第一个参数表示间隔多长时间获取一次信息,单位为秒,第二个参数表示输出几个信息后停止获取:

    

  第二个参数是缺省的,如果省略,则会一直输出状态信息,直至使用"Ctrl + C"停止vmstat:

    


  现在来详细解释下这些参数:

  procs

    r  -->  当前等待运行的进程队列,如果其超过了cpu内核数目,则表示这个cpu负载过高,cpu很繁忙,服务器的状态很危险。

    b  -->  表示阻塞的进程。

  memory 

    swpd  -->  虚拟内存已使用的大小,也就是已经有多少内存已经被交换到了交换文件货磁盘,如果大于0,表示机器物理内存不足了,如果不是程序内存泄露的原因,那么就该升级内存了或者把耗内存的任务迁移到其他机器。

    free  -->  空闲的物理内存的大小,或者说是未分配的可用内存。

    buff  -->  正在使用中的内存。

    cache  -->  直接用来记忆我们打开的文件,给文件做缓冲,也有一种说法是显示了有多少内存可以被交换到交换文件或者磁盘上。

  swap

    si   -->  每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。

    so  -->  每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。

  io

    bi   -->  块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte。

    bo  -->  块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。

  system

    in  -->  每秒CPU的中断次数,包括时间中断。

    cs  -->  每秒系统为了处理任务而上下文切换的次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用。

  cpu

    us  -->  用户CPU使用时间,即处理器在非内核程序消耗的时间。

    sy  -->  系统CPU使用时间,即处理内核相关任务消耗的时间,如果太高,表示系统调用时间长,例如是IO操作频繁。

    id  -->  空闲CPU使用时间,一般来说,id + us + sy = 100。

    wt  -->  等待IO CPU时间。 


  显示活跃和非活跃内存

  在vmstat后加入-a选项

  

  显示磁盘统计数据总结

  vmstat也可以打印系统磁盘活动统计。使用-D选项

  

  显示单位

  可以选择你想打印的显示单位字符。在-S后跟上k (小写,1000)、 K (大写,1024)、 m (小写,1000000)、 M (大写,1048576) 字节. 如果你不想选择单位,默认使用的是K (1024)。 

  

  

  显示某个磁盘分区的详细统计数据

  可以使用-p选项跟上设备名

  

  

 

转载于:https://www.cnblogs.com/linxiong945/p/4236452.html

你可能感兴趣的文章
android dialog使用自定义布局 设置窗体大小位置
查看>>
ionic2+ 基础
查看>>
[leetcode]Minimum Path Sum
查看>>
Aizu - 1378 Secret of Chocolate Poles (DP)
查看>>
csv HTTP简单表服务器
查看>>
IO流写出到本地 D盘demoIO.txt 文本中
查看>>
Screening technology proved cost effective deal
查看>>
mysql8.0.13下载与安装图文教程
查看>>
Thrift Expected protocol id ffffff82 but got 0
查看>>
【2.2】创建博客文章模型
查看>>
Kotlin动态图
查看>>
从零开始系列之vue全家桶(1)安装前期准备nodejs+cnpm+webpack+vue-cli+vue-router
查看>>
Jsp抓取页面内容
查看>>
大三上学期软件工程作业之点餐系统(网页版)的一些心得
查看>>
可选参数的函数还可以这样设计!
查看>>
[你必须知道的.NET]第二十一回:认识全面的null
查看>>
Java语言概述
查看>>
关于BOM知识的整理
查看>>
使用word发布博客
查看>>
面向对象的小demo
查看>>