1. vmstat

能够展现给定时间间隔的server的状态值,包含server的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况

vmstat 2 10

2: 每隔2s

10 : 统计10次

2. res

procs ———–memory———- —swap– —–io—- -system– ——cpu—–

r b swpd free buff cache si so bi bo in cs us sy id wa st

1 5 0 173436 591640 8272204 0 0 69 55 32 265 6 5 86 3 0

1 4 0 169912 592224 8273480 0 0 1180 214 4271 13984 2 3 40 55 0

0 5 0 172544 592648 8276524 0 0 1266 8 4231 13970 3 3 41 53 0

0 5 0 162404 593260 8283660 0 0 2328 0 4458 14854 2 3 21 74 0

4 5 0 174216 594412 8267996 0 0 1842 334 4592 15473 4 6 8 82 0

2 5 0 160628 595204 8274300 0 0 2384 0 4400 15003 2 3 14 81 0

0 5 0 172136 595152 8262144 0 0 2356 348 4357 14578 2 3 14 81 0

0 5 0 167064 596552 8269084 0 0 3060 22 4489 14594 3 5 19 74 0

0 6 0 160192 597148 8274024 0 0 2072 688 4318 14866 2 3 25 70 0

0 5 0 168100 597504 8258316 0 0 1734 282 4501 14670 2 5 21 72 0

3. res 解析

r 表示执行队列(就是说多少个进程真的分配到CPU)。我測试的server眼下CPU比較空暇,没什么程序在跑,当这个值超过了CPU数目。就会出现CPU瓶颈 了。这个也和top的负载有关系。一般负载超过了3就比較高,超过了5就高。超过了10就不正常了,server的状态非常危急。top的负载相似每秒的执行队 列。

假设执行队列过大,表示你的CPU非常繁忙,通常会造成CPU使用率非常高。

b 表示堵塞的进程,这个不多说,进程堵塞。大家懂的。

swpd 虚拟内存已使用的大小。假设大于0。表示你的机器物理内存不足了。假设不是程序内存泄露的原因。那么你该升级内存了或者把耗内存的任务迁移到其它机器。

free 空暇的物理内存的大小。我的机器内存总共8G,剩余3415M。

buff Linux/Unix系统是用来存储。文件夹里面有什么内容,权限等的缓存,我本机大概占用300多M

cache cache直接用来记忆我们打开的文件,给文件做缓冲,我本机大概占用300多M(这里是Linux/Unix的聪明之处,把空暇的物理内存的一部分拿来做文件和文件夹的缓存,是为了提高 程序执行的性能。当程序使用内存时。buffer/cached会非常快地被使用。)

si 每秒从磁盘读入虚拟内存的大小,假设这个值大于0。表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。我的机器内存充裕。一切正常。

so 每秒虚拟内存写入磁盘的大小,假设这个值大于0。同上。

bi 块设备每秒接收的块数量。这里的块设备是指系统上全部的磁盘和其它块设备,默认块大小是1024byte。我本机上没什么IO操作。所以一直是0,可是我曾在处理拷贝大量数据(2-3T)的机器上看过能够达到140000/s,磁盘写入速度差点儿相同140M每秒

bo 块设备每秒发送的块数量,比如我们读取文件,bo就要大于0。

bi和bo一般都要接近0。不然就是IO过于频繁,须要调整。

in 每秒CPU的中断次数。包含时间中断

cs 每秒上下文切换次数。比如我们调用系统函数,就要进行上下文切换,线程的切换。也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的 数目,比如在apache和nginx这样的webserver中,我们一般做性能測试时会进行几千并发甚至几万并发的測试,选择webserver的进程能够由进程或 者线程的峰值一直下调。压測。直到cs到一个比較小的值,这个进程和线程数就是比較合适的值了。系统调用也是。每次调用系统函数。我们的代码就会进入内核 空间,导致上下文切换,这个是非常耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的 时间少了,CPU没有充分利用。是不可取的。

us 用户CPU时间,我以前在一个做加密解密非常频繁的server上。能够看到us接近100,r执行队列达到80(机器在做压力測试,性能表现不佳)。

sy 系统CPU时间,假设太高,表示系统调用时间长,比如是IO操作频繁。

id 空暇 CPU时间,一般来说,id + us + sy = 100,一般我觉得id是空暇CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。

wt 等待IO CPU时间。

$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('

    ').addClass('pre-numbering').hide();
    $(this).addClass('has-numbering').parent().append($numbering);
    for (i = 1; i ').text(i));
    };
    $numbering.fadeIn(1700);
    });
    });

Linux vmstat具体解释(系统IO)的更多相关文章

  1. Linux系统IO分析工具之iotstat常用参数介绍

    Linux系统IO分析工具之iotstat常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 1>.安装iostat [root@flume115 ~]# yum - ...

  2. Linux系统IO分析工具之iotop常用参数介绍

      Linux系统IO分析工具之iotop常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在一般运维工作中经常会遇到这么一个场景,服务器的IO负载很高(iostat中的 ...

  3. [linux]vmstat命令详解-显示虚拟内存状态

    本文转载于http://man.linuxde.net/vmstat 前言:Linux系统的内存分为物理内存和虚拟内存两种.物理内存是真实的,也就是物理内存条上的内存.而虚拟内存则是采用硬盘空间补充物 ...

  4. Linux vmstat使用

    Vmstat命令的简单使用 Vmstat命令是Linux/unix常用的系统监控工具,可以方便的查看CPU.内存.swap分区.IO读写等情况. Vmstat常用的参数主要有两个:1.采集的时间间隔 ...

  5. 【linux】关于分析系统问题的前几分钟

    为了解决性能问题,你登入了一台Linux服务器,在最开始的一分钟内需要查看什么?你可以在几分钟内就对系统资源的使用情况和进程的运行状况有大体上的了解.无非是先查看错误信息和饱和指标,再看下资源的使用量 ...

  6. Linux 下的五种 IO 模型

    概念说明 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方).操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的 ...

  7. linux服务器开发二(系统编程)--进程相关

    进程相关的概念 程序与进程 程序,是指编译好的二进制文件,在磁盘上,不占用系统资源(CPU.内存.打开的文件.设备.锁等等). 进程,是一个抽象的概念,与操作系统原理联系紧密.进程是活跃的程序,占用系 ...

  8. linux性能优化cpu 磁盘IO MEM

    系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长期和持续的过程,不 是说现在优化了,测试了,以后就可以一劳永逸了,也不是说书本上 ...

  9. Linux中如何将系统调优

    Linux高可用服务器集群解决方案让IT系统管理员可以从容应对许多常见的硬件和软件故障,允许多台计算机一起工作,为关键服务正常运行提供保障,系统管理员可以不中断服务执行维护和升级.Linux服务器有各 ...

随机推荐

  1. 今日网站突然报错,mysql的故障

    Access denied for user 'root'@'localhost' (using password: YES) 错误位置 FILE: /var/www/html/ThinkPHP/Li ...

  2. [状压dp]POJ2686 Traveling by Stagecoach

    题意: m个城市, n张车票, 每张车票$t_i$匹马, 每张车票可以沿某条道路到相邻城市, 花费是路的长度除以马的数量. 求a到b的最小花费, 不能到达输出Impossible $1\le n\le ...

  3. Codeforces 258 Div2

    A题,n*m根木棍,相交放置,轮流取走相交的两根,最后谁不能行动,则输掉. min(n,m)&1 为1则先取者赢. B题,给定一个长度为n,且各不相同的数组,问能否通过交换连续一段L....R ...

  4. 通过jQuery或ScriptManager以Ajax方式访问服务

    1.客户端和服务端 服务端对外提供服务时,可以通过handler或者webservice.handler比较轻便,但是难以对外公开,只有程序员自己知道它到底做了些什么工作.webservice可以将服 ...

  5. absolute和relative的几个Demo

    这些例子最好通过FireFox结合FireBug调试查看 1.absolute让元素inline-block化 <!DOCTYPE html> <html xmlns="h ...

  6. java的几种for循环方法

    自从jdk升级为1.8以后,for循环又升级了 classic for classic foreach List.forEach() List.stream().forEach() List.para ...

  7. matlab numpy equivalents

    THIS IS AN EVOLVING WIKI DOCUMENT. If you find an error, or can fill in an empty box, please fix it! ...

  8. poj2817WordStack(状压)

    链接 与上题类似  预处理一下各字符串之间最大的相同字符数就可以 注意dp要初始为负无穷 #include <iostream> #include<cstdio> #inclu ...

  9. 软件介绍(apache lighttpd nginx)

    一.软件介绍(apache  lighttpd  nginx) 1. lighttpd Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点.lighttpd是众多 ...

  10. Master Nginx(3) - Using the Mail Module

    Basic proxy service Authentication service Combining with memcached Interpreting log files Operating ...