今天小编要跟大家介绍的vmstat命令详解。熟悉Linux系统和使用Linux系统工作的小伙伴都知道Linux的命令有很多,而真正在工作中用到的命令应该不超过几十个,为了让大家更好的掌握这些命令,小编为大家分享了这篇Linux vmstat命令详解的文章,希望能够对大家有所帮助。

vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。vmstat工具提供了一种低开销的系统性能观察方式。因为vmstat本身就是低开销工具,在非常高负荷的服务器上,你需要查看并监控系统的健康情况,在控制窗口还是能够使用vmstat输出结果。

一、虚拟内存原理

上面说到了vmstat是虚拟内存统计工具,那咱就不得不说一说虚拟内存原理。

在系统中运行的每个进程都需要使用到内存,但不是每个进程都需要每时每刻使用系统分配的内存空间。当系统运行所需内存超过实际的物理内存,内核会释放某些进程所占用但未使用的部分或所有物理内存,将这部分资料存储在磁盘上直到进程下一次调用,并将释放出的内存提供给有需要的进程使用。

在Linux内存管理中,主要是通过“调页Paging”和“交换Swapping”来完成上述的内存调度。调页算法是将内存中最近不常使用的页面换到磁盘上,把活动页面保留在内存中供进程使用。交换技术是将整个进程,而不是部分页面,全部交换到磁盘上。

分页(Page)写入磁盘的过程被称作Page-Out,分页(Page)从磁盘重新回到内存的过程被称作Page-In。当内核需要一个分页时,但发现此分页不在物理内存中(因为已经被Page-Out了),此时就发生了分页错误(Page Fault)。

当系统内核发现可运行内存变少时,就会通过Page-Out来释放一部分物理内存。经管Page-Out不是经常发生,但是如果Page-out频繁不断的发生,直到当内核管理分页的时间超过运行程式的时间时,系统效能会急剧下降。这时的系统已经运行非常慢或进入暂停状态,这种状态亦被称作thrashing(颠簸)。

二、命令详解

vmstat常用命令格式如下:

vmstat [-a] [-n] [-S unit] [delay [ count]]

vmstat [-s] [-n] [-S unit]

vmstat [-m] [-n] [delay [ count]]

vmstat [-d] [-n] [delay [ count]]

vmstat [-p disk partition] [-n] [delay [ count]]

vmstat [-f]

vmstat [-V]

命令选项说明如下:

-a:显示活跃和非活跃内存

-f:显示从系统启动至今的fork数量 。

-m:显示slabinfo

-n:只在开始时显示一次各字段名称。

-s:显示内存相关统计信息及多种系统活动数量。

delay:刷新时间间隔。如果不指定,只显示一条结果。

count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。

-d:显示磁盘相关统计信息。

-p:显示指定磁盘分区统计信息

-S:使用指定单位显示。参数有 k 、K 、m 、M,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)

-V:显示vmstat版本信息。

下面就对我们常用的使用方式进行详细的总结。

三、使用实例

输入命令: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

3 0 361396 196772 55820 359372 0 0 13 21 1 1 2 0 98 0 0

1 0 361392 196524 55820 359616 8 0 236 0 411 527 1 0 90 9 0

2 1 361392 196524 55828 359608 0 0 0 48 370 503 1 1 98 0 0

4 0 361392 196524 55828 359616 0 0 0 0 442 559 1 0 99 0 0

字段说明:

procs(进程)

r:当前运行队列中线程的数目,代表线程处于可运行状态,但CPU还未能执行.,这个值可以作为判断CPU是否繁忙的一个指标;当这个值超过了CPU数目,就会出现CPU瓶颈了;这个我们可以结合top命令的负载值同步评估系统性能;

b:等待IO的进程数量;如果该值一直都很大,说明IO比较繁忙,处理较慢;

memory(内存)

swpd:虚拟内存已使用的大小;如果swpd的值不为0,但是si,so的值长期为0,这种情况不会影响系统性能;

free:空闲的物理内存的大小;

buff:用作缓冲的内存大小;

cache:用作缓存的内存大小;如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小;

swap(交换空间,单位:KB);内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有时我们看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的;

si:每秒从交换区写到内存的大小;

so:每秒写入交换区的内存大小;

io(单位:块/秒)

bi:每秒读取的块数;

bo:每秒写入的块数;随机磁盘读写的时候,这2个值越大,能看到CPU在IO等待的值也会越大;

system(系统);这2个值越大,会看到由内核消耗的CPU时间会越大;

in:每秒中断数,包括时钟中断;

cs:每秒上下文切换数;

cpu(以百分比表示)

us:用户进程执行时间(user time);

sy:系统进程执行时间(system time);

id:空闲时间(包括IO等待时间);

wa:等待IO时间;wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈。

以上就是小编今天为大家分享的关于Linux系统命令介绍之vmstat命令详解的文章,希望本篇文章能够对正在从事Linux相关工作的小伙伴们有所帮助。想要了解更多Linux相关知识记得关注马哥教育官网。最后祝愿小伙伴们工作顺利!

声明:文章来源于网络,侵删!

linux tf命令,Linux系统命令介绍之vmstat命令详解相关推荐

  1. 一天一个 Linux 命令(40):vmstat 命令

    本文为joshua317原创文章,转载请注明:转载自joshua317博客 一天一个 Linux 命令(40):vmstat 命令 - joshua317的博客 一.简介 Linux下的vmstat( ...

  2. 【转载】Linux命令-自动挂载文件/etc/fstab功能详解[转]

    博客园 首页 新随笔 联系 订阅 管理 随笔 - 322  文章 - 0  评论 - 19 Linux命令-自动挂载文件/etc/fstab功能详解[转]     一./etc/fstab文件的作用 ...

  3. php fping,【Linux 命令】fping ping 包间隔时间详解

    服务器间检查会用到fping的命令,期间遇到了一个问题,需要将ping包间的间隔时间设置为100毫秒,查看fping -h看下,找到了-i和-p两个参数: 看到这两个参数,我当时的表情是这样的: 看不 ...

  4. linux Shell(脚本)编程入门实例讲解详解

    linux Shell(脚本)编程入门实例讲解详解 为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具.Shell不仅仅是命令的收集, ...

  5. linux输出文件没有找到,Linux环境下标准输入、输出、错误信息详解

    Linux环境下标准输入.输出.错误信息详解 下面我们介绍在Linux环境下标准输入.输出.错误设备.标准输入设备代号为0, 用来显示输入信息,标准输出设备代号为1,用来显示正常信息,标准错误设备代号 ...

  6. linux系统四个组成部分,Linux系统由哪几部分组成?系统详解(干货)

    原标题:Linux系统由哪几部分组成?系统详解(干货) 我们常说的Linux一般指的是系统内核,基于Linux系统内核的操作系统叫Linux发行版操作系统,像redhat.centos.ubuntu和 ...

  7. Linux如何重启oracle监听,Linux下重启oracle服务及监听器和实例详解

    一.在Linux下重启Oracle数据库及监听器: 方法1: 用root以ssh登录到linux,打开终端输入以下命令: cd $ORACLE_HOME #进入到oracle的安装目录 dbstart ...

  8. linux系统密码输入快捷,linux 系统忘记密码的快捷解决方法(图文详解)

    linux 系统忘记密码的快捷解决方法(图文详解) 在学习Linux的过程当中,想到,万一自己忘记了linux的密码该怎么办? 其实,在linux当中,只用简单的操作几步,就可以更改用户密码~下面小编 ...

  9. 技巧:Linux 动态库与静态库制作及使用详解

    http://www.ibm.com/developerworks/cn/linux/l-cn-linklib/ 技巧:Linux 动态库与静态库制作及使用详解 标准库的三种连接方式及静态库制作与使用 ...

最新文章

  1. 【强烈推荐】清华大学刘洋老师【浅谈研究生学位论文选题方法】讲座
  2. ABAP [div '/'] 的区别与妙用
  3. linux 显示unix时间,小弟我使用过的Linux命令之uptime - 显示系统运行时间
  4. getchwd() 函数返回当前工作目录。
  5. Codeforces903E Swapping Characters
  6. 中国光伏产业将面临何种形势?
  7. ASP.NET AJAX:Ajax验证(ajax+Handler处理)
  8. 出现报错Maximum call stack size exceeded
  9. QQ农场外挂、QQ牧场外挂专偷QQ号
  10. VS2013 下载链接
  11. OCX控件安装过程中遇到的问题及解决方法
  12. 【JZOJ5882】雪人
  13. android 限制后台进程,Android O Preview 相关-后台执行限制
  14. 架构师之路工作量化与细化
  15. mysql查询某字段包含手机号
  16. 让程序自动玩数独游戏让你秒变骨灰级数独玩家
  17. [国家集训队2012]电子对撞机nbsp;解题…
  18. python entry如何清空_如何清除tkinter中来自Entry小部件的以前输入?
  19. Java中文语言处理HanLP
  20. lammps多孔结构

热门文章

  1. echo * 和ls *之间的区别?
  2. redis集群部署步骤
  3. RAID磁盘阵列——扫盲篇
  4. 高性能集群软件Keepalived的介绍以及安装与配置
  5. 逻辑心理测试题:三囚分汤
  6. LeetCode OJ:Valid Anagram(有效字谜问题)
  7. Spiral Matrix
  8. SAP Basis 日常管理
  9. 使用Windows远程桌面(mstsc)通过RDP协议访问Ubuntu/Debian服务器
  10. 百万并发中间件系统的内核设计看Java并发性能优化