vmstat命令:用来获得有关进程、虚存、页面交换空间及 CPU活动的信息。这些信息反映了系统的负载情况。

vmstat 命令的输出
vmstat 1 10

实例解读一:

CPU状态的监控指标主要有以下几个参数获得:
r:在运行队列中等待的进程数
b:在等待IO的进程数
cs:每秒的上下文切换的次数
us:用户进程使用的CPU时间(%)
sy:系统进程使用的CPU时间(%)
id:CPU空闲时间(%)
wa:等待IO所消耗的CPU时间(%)

由上面的命令输出中可以看到:
1.   IO等待的CPU时间(wa)非常高,而实际运行用户和系统进程的CPU时间却不高
2.  存在等待IO的进程(b>0)
由此可以得出结论:系统目前CPU使用率高是由于IO等待所造成的,并非由于CPU资源不足。用户应检查系统中正在进行IO操作的进程,并进行调整和优化。
正常的CPU状态图,可以与上图作比较:

实例解读二:大量的算术运算
本程序会进入一个死循环,不断的进行求平方根的操作,模拟大量的算术运算的环境.
root@debian6:~# vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0      0 772300  42420 175356    0   31     5   138   22   14  0  0 99  0
 1  0      0 772292  42420 175356    0    0     0     0   45   22  5  0 95  0
 1  0      0 772284  42420 175356    0    0     0     0  276   15 100  0  0  0
 1  0      0 772284  42420 175356    0    0     0     0  298   12 100  0  0  0
 1  0      0 772284  42420 175356    0    0     0     0  273   11 100  0  0  0
 1  0      0 772284  42420 175356    0    0     0     0  278   16 100  0  0  0
由于不断地在做算术运算,从上面可以看出:
1. r表示在运行队列中等待的进程数,上面的数据表示r=1,一直有进程在等待,
2. in表示每秒的中断数,包括时钟中断,运行队列中有等待的进程(看参数r的值),中断数in就上来了
3. us表示用户进程使用的cpu时间,随着r=1,用户的cpu占用时间直接达到了100%
4. id表示cpu的空闲时间,一开始的时候id很高,达到95%,后来程序开始跑,cpu一直处于繁忙状态(看参数r,us的值),id就一直为0,等程序终止,id就是上去了

实例解读三:大量的系统调用
本脚本会进入一个死循环,不断的执行cd命令,从而模拟大量系统调用的环境
root@debian6:~# vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0      0 772300  42500 175364    0   30     5   136   22   14  0  0 99  0
 0  0      0 772300  42500 175364    0    0     0     0   27   14  0  0 100  0
 1  0      0 772220  42500 175364    0    0     0     0  213 2482  6 70 24  0
 1  0      0 772204  42500 175364    0    0     0     0  283 3298  8 92  0  0
 1  0      0 772204  42500 175364    0    0     0     0  281 3343  5 95  0  0
结论:随着程序不断调用cd命令,运行队列有等待的进程r(看参数r),每秒的中断数in(看参数in),下文切换的次数cs骤然提高(看参数cs),系统占用的cpu时间sy(看参数sy)也不断提高,cpu空闲时间id(看参数id)一直为0。
当程序终止的时候,r,in,cs,sy数据都下来了,id上去了,表示系统已经空闲下来了。

实例解读四:大量的io操作
我们用dd命令,从/dev/zero读数据,写入到/tmp/data文件中,如下:
dd if=/dev/zero of=/tmp/data bs=1M count=1000
root@debian6:~# vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0      0 772176  42564 175352    0   30     5   134   23   14  0  0 99  0
 0  0      0 772176  42564 175352    0    0     0     0   35   15  0  1 99  0
 1  0      0 687220  42564 257976    0    0     4     0  181   23  0 55 45  0
root@debian6:~# dd if=/dev/zero of=/mnt/date1 bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 6.31404 s, 166 MB/s
root@debian6:~# dd if=/dev/zero of=/mnt/data1 bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 2.19338 s, 478 MB/s
1.  bo写数据到磁盘的速率,bi是从磁盘读的速度
2.  dd不断的向磁盘写入数据,所以bo的值会骤然提高,而cpu的wait数值也变高,说明由于大量的IO操作,系统的瓶径出现IO设备上
3. 由于对文件系统的写入操作,cache也从175352KB提高到了952236KB,又由于大量的写中断调用,in的值也从35提高到638,上下文切换cs的值从23到了611
接下来我们还用dd命令,这回从/tmp/data文件读,写到/dev/null文件中,如下:
dd if=/tmp/test1 of=/dev/null bs=1M
root@debian6:~# vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0      0  15568  11444 972748    0   25    11   135   23   14  0  0 100  0
 0  0      0  15568  11444 972760    0    0     0     0   16   13  0  0 100  0
 1  1      0  14692  11444 973084    0    0 46396     0  432  687  0 13 57 30
 1  1      0  14568  11444 973228    0    0 129152     0 1103 1917  0 22  0 78
root@debian6:~# dd if=/mnt/data1 of=/dev/null bs=1M
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 5.1614 s, 203 MB/s
1.  dd不断的从/tmp/data磁盘文件中读取数据,所以bi的值会骤然变高,最后我们看到b(在等待io的进程)也由0变成了1甚至到2
2. dd读的时候,in中断数和cs上下文切换很高,还有就是等待IO所消耗的cpu时间wa相当高
3.  因此,这时的性能瓶颈在读上面,有程序在发生大量读的请求。

实例解读五:大量的占用内存
本程序会不断分配内存,直到系统崩溃
root@debian6:~# vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0      0 880944  70656  51692    0    0   125    13   27   35  0  2 97  1
 0  0      0 880944  70656  51692    0    0     0     0   17   12  0  0 100  0
 1  0      0 733344  70656  51692    0    0     0     0  259  339  2 52 46  0
 1  0      0 312240  70656  51692    0    0     0     0  484  674  2 98  0  0
 1  0      0 152776  70656  51692    0    0     0     0  417  469  0 100  0  0
 0  2      0  12396  68868  45748    0    0     0     0  410  444  1 97  0  2
 1  0    652 605960  60932  39120    0  908     0   908  141  130  0 34  0 66
 0  0    524 903632  60932  39136    0    0     0     0   32   14  0  3 97  0
 0  0    524 903632  60932  39136    0    0     0     0   13    8  0  0 100  0
 0  0    524 903632  60932  39136    0    0     0     0   13    9  0  0 100  0
 0  0    524 903632  60932  39136   32    0    32     0   14   12  0  0 99  1
结论:我们看到cache迅速减少,而swpd迅速增加,这是因为系统为了分配给新的程序,而从cache(文件系统缓存)回收空间,当空间依然不足时,会用到swap空间.
而于此同时,si/so也会增加,尤其是so,而swap属于磁盘空间,所以bo也会增加

性能监控命令vmstat详解【杭州多测师】【杭州多测师_王sir】相关推荐

  1. 【JVM】之监控命令-jstat详解

    目录 jstat -gc jstat -gcutil jstat -gcnew jstat -gcold jstat -gc 1.jps获取进程号(也可以是用ps -ef 或 ps -aux) 2.j ...

  2. linux下top命令参数详解

    linux下top命令参数详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.下面详细介绍它的使用方法. 内存信息.内容如下: ...

  3. 强大的strace命令用法详解

    强大的strace命令用法详解_Linux教程_Linux公社-Linux系统门户网站 strace是什么? 按照strace官网的描述, strace是一个可用于诊断.调试和教学的Linux用户空间 ...

  4. 面试官都在问 | Linux命令mpstat详解

    面试官都在问 | Linux命令mpstat详解 1. mpstat的基本用法 mpstat的全称为Multiprocessor Statistics,是一款常用的多核CPU性能分析工具,用来实时查询 ...

  5. 网络性能评估工具Iperf详解(可测丢包率)

    原文链接:安全运维之:网络性能评估工具Iperf详解:技术成就梦想51CTO-中国领先的IT技术网站 参考博文:Install Iperf and Test Network Throughput,Sp ...

  6. dos下的edit命令使用详解

    dos下的edit命令使用详解 来源:网络 作者:未知 edit命令是一个简单的编辑软件,我们经常用它来编辑一些程序和批处理文件. 比如,我想在c盘根目录下编辑一个简单的批处理文件,要求无论当前盘和当 ...

  7. mysql语句性能开销检测profiling详解

    转载自 mysql语句性能开销检测profiling详解 之前我介绍过msyql查询优化explain检查命令的使用,explain主要是检查sql语句的基本性能,sql是否优秀,但不能查看具体的涉及 ...

  8. 六个 Linux性能监控命令行工具

    六个 Linux性能监控命令行工具  1.htop - http://htop.sourceforge.net/ 一个可以让用户与之交互的进程查看器.作为文本模式的应用程序,主要用于控制台或 X 终端 ...

  9. linux中which命令详解,Linux下which命令使用详解(转)

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which 查看可执行文件的位置. whereis 查看文件的位置. locate 配合数据库查看文件位置. f ...

最新文章

  1. ASP.NET页面之间传递值的几种方式
  2. 唐山一个葬礼上的豪华车队
  3. “中国式招标”的一些趣闻
  4. duilib入门简明教程 -- VS环境配置(2) (转)
  5. 中国三大轴承厂是 哪三家?
  6. junit initializationError
  7. JAVA Web Servlet中的异步处理 (1) -- Servlet3.0中的Async支持
  8. sublime主题安装
  9. Matlab——图像缩放(插值法)
  10. [转]nginx+php-fpm.sock时504,502错误解决办法
  11. 三分钟上手openldap帐号系统
  12. django安装教程
  13. oracle建表默认now,oracle建表脚本当中使用默认值_oracle
  14. 嵌入式驱动工程师开发学习路线
  15. PHP响应式营销型万能H5建站系统源码
  16. 【清华大学陈渝】第三章 计算机体系结构
  17. SuperMemo概念初识(摘录)
  18. 设计师必备!超好用的MAC电脑网页设计师软件
  19. 过渡篇(1),初步了解Java泛型
  20. 计算机网络技术职称论文,计算机职称论文范文(2)

热门文章

  1. 转Bayer Pattern
  2. OpenCV笔记_1.cvtColor()Bayer色彩空间
  3. 【机器视觉基础知识整理】
  4. NC65【新】功能快速开发详细教程(yyds神)
  5. FireMonkey开发: 图片缩放
  6. 你不知道的100个国外搜索引擎
  7. 辰华宏命令(Macro Command)使用说明
  8. ChatGPT 与未来软件开发的关系
  9. 微信小程序实现考场座位号随机
  10. RoboWare安装教程