命令详解

重要星级:

★★★★☆

功能说明:

vmstat 是 Virtual Memory Statistics ( 虚拟内存统计 ) 的缩写,利用 vmstat 命令可以对操作系统的内存信息、进程状态和 CPU 活动等进行监视。但是只能对系统的整体情况进行统计,无法对某个进程进行深入分析。

语法格式:

    vmstat [option] [delay [count]]
vmstat [选项] [时间间隔 [次数]]

说明:

1. 在 iftop 命令后面的每一个选项里,每个元素之间都至少要有一个空格。
            2. delay 表示两次输出之间的间隔时间。
            3. count 表示按照 delay指定的时间间隔统计的次数。

选项说明:

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

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

-m :显示 slab 信息

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

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

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

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

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

-t :统计信息带上时间戳

使用范例:

显示虚拟内存的使用情况 ( vmstat 5 6 ):

[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 [root@localhost :~]# vmstat # 表示每5秒钟更新一次输出信息,循环输出,按 Ctrl+C 组合键停止输出
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st ^C [root@localhost :~]# vmstat # 表示每5秒钟更新一次输出信息,统计6次后停止输出
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st 0
[root@localhost :~]#

以下是命令结果的详细说明:

第一列:procs:
. r 列:the number of processes waiting for run time.
表示运行和等待 CPU 时间片的进程数。( 如果等待运行的进程数越多,意味着CPU非常繁忙。另外,如果该参数长期大于和等于逻辑cpu个数,则CPU资源可能存在较大的瓶颈。 )
. b 列:the number of processes in uninterruptible sleep.
表示处在非中断睡眠状态的进程数。( 意味着进程被阻塞。主要是指被资源阻塞的进程对列数(比如IO资源、页面调度等),当这个值较大时,需要根据应用程序来进行分析,比如数据库产品,中间件应用等。 )

第二列:memory:
. swpd 列:the amount of virtual memory used.
表示使用虚拟内存的大小。如果虚拟内存使用较多,可能系统的物理内存比较吃紧,需要采取合适的方式来减少物理内存的使用。swapd 不为0,并不意味物理内存吃紧,如果 swapd 没变化,si、so 的值长期为0,这也是没有问题的
. free 列:the amount of idle memory.
表示当前空闲的物理内存数量。
. buff 列:the amount of memory used as buffers.
表示 buffers 的内存数量 ( 主要用于块设备缓存,单位:KB )。
. cache 列:the amount of memory used as cache.
表示 cache 的内存数量 ( 主要用于缓存文件,单位:KB )。
. inact 列:the amount of inactive memory. (-a option)
表示非活跃的内存总量。
. active: the amount of active memory. (-a option)
表示活跃的内存总量。

第三列:swap:
. si( swap in )列:Amount of memory swapped in from disk (/s).
表示由磁盘交换到 swap 虚拟内存的交换页数量,单位:KB/秒。也就是内存进入内存交换区的数量。如果这个值大于0,表示物理内存不够用或者内存泄露了
. so( swap out )列:Amount of memory swapped to disk (/s).
表示由 swap 虚拟内存交换到磁盘的交换页数量,单位:KB/秒,如果这个值大于0,表示物理内存不够用或者内存泄露了

. 内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。
当看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,这个是不正确的。不能光看这一点,还要结合si和so,如果 free 很少,但是 si 和 so 也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。
当内存的需求大于RAM的数量,服务器启动了虚拟内存机制,通过虚拟内存,可以将 RAM 段移到 SWAP DISK 的特殊磁盘段上,
这样会出现虚拟内存的页导出和页导入现象,页导出并不能说明RAM瓶颈,虚拟内存系统经常会对内存段进行页导出,但页导入操作就表明了服务器需要更多的内存了, 页导入需要从SWAP DISK上将内存段复制回RAM,导致服务器速度变慢。

第四列:I/O项显示磁盘读写状况:
. bi 列:Blocks received from a block device (blocks/s).
表示从块设备读入的数据总量 ( 即读磁盘,单位:块/s )。
. bo 列:Blocks sent to a block device (blocks/s).
表示写入块设备的数据总量 ( 即写磁盘,单位:块/s )。

第五列:system 显示采集间隔内发生的中断数:
. in 列:the number of interrupts per second, including the clock.
表示在某一时间间隔中观测到的每秒设备中断数,包括时钟中断。
. cs 列:the number of context switches per second.
每秒产生的上下文 ( 环境 ) 切换次数。比如我们调用系统函数,就要进行上下文切换,而过多的上下文切换会浪费较多的 CPU 资源,这个数值应该越小越好。

第六列:CPU 项显示了 CPU 的使用状态:
. us 列:time spent running non-kernel code. (user time, including nice time)
表示用户消耗的 CPU 时间 ( 非内核进程占用时间 )(单位为百分比)。us 的值比较高时,说明用户进程消耗的 CPU 时间多
. sy 列:time spent running kernel code. (system time).
表示系统( 内核 )使用的 CPU 时间 ( 单位为百分比 )。sy 的值高时,说明系统内核消耗的 CPU 资源多,这并不是良性表现,我们应该检查原因。
. id 列:time spent idle. Prior to Linux 2.5., this includes IO-wait time.
空闲的 CPU 的时间( 百分比 ),在 Linux 2.5. 之前,这部分包含 IO 等待时间。
. wa 列:time spent waiting for IO. Prior to Linux 2.5., shown as zero.
表示等待 IO 的 CPU 时间,在 Linux 2.5. 之前,这个值为0 .这个指标意味着 CPU 在等待硬盘读写操作的时间,用百分比表示。wait 越大则机器 IO 性能就越差。说明 IO 等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈 ( 块操作 )。
. st 列:time stolen from a virtual machine. Prior to Linux 2.6., unknown.
表示虚拟机占用的 CPU 时间的百分比。

查看内存使用的详细信息 ( vmstat -s ):

[root@localhost :~]# vmstat -s
K total memory
K used memory
K active memory
K inactive memory
K free memory
K buffer memory
K swap cache
K total swap
K used swap
K free swap
non-nice user cpu ticks
nice user cpu ticks
system cpu ticks
idle cpu ticks
IO-wait cpu ticks
IRQ cpu ticks
softirq cpu ticks
stolen cpu ticks
pages paged in
pages paged out
pages swapped in
pages swapped out
interrupts
CPU context switches
boot time
forks

说明:这些信息分别来自于 /proc/meminfo、/proc/stat 和 /proc/vmstat 文件中

查看磁盘的读/写:

[root@localhost :~]# vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
total merged sectors ms total merged sectors ms cur sec
sda
sr0
dm-
dm-
[root@localhost :~]#

说明:这些信息主要来自于 /proc/diskstats。其中的 merged 表示一次来自于合并的写/读请求,系统一般会把多个连接/临近的读/写请求合并到一起来操作。

查看 /dev/sda1 磁盘的读写统计信息:

[root@localhost :~]# vmstat -p /dev/sda1
sda1 reads read sectors writes requested writes [root@localhost :~]#

说明:这些信息主要来自于 /proc/diskstats。各列的说明具体如下:

. reads :来自于该分区的读的次数。
. read sectors :来自于该分区的读扇区的次数。
. writes :来自于该分区的写的次数。
. requested writes :来自于该分区的写请求次数

Linux 系统管理命令 - vmstat - 虚拟内存统计的更多相关文章

  1. Linux系统管理命令

    Linux系统管理命令 命令 说明 stat 显示指定文件的相关信息,比ls命令显示内容更多 who 显示在线登录用户 hostname 显示主机名称 uname 显示系统信息 top 显示当前系统中 ...

  2. S11 Linux系统管理命令

    11.1 lsof:查看进程打开的文件 11.2 uptime:显示系统的运行时间及负载 11.3 free:查看系统内存信息 11.4 iftop:动态显示网络接口流量信息 11.5 vmstat: ...

  3. 尚学linux课程---7、linux系统管理命令

    尚学linux课程---7.linux系统管理命令 一.总结 一句话总结: 查网络:netstat -ntpl 查进程:ps 1.需要下载163yum源(从外部源同步仓库)里面的所有rpm文件? re ...

  4. Linux系统管理命令(1)accton的使用

    安装: apt install acct accton accton命令是Linux系统进程管理命令之一,它的作用是打开进程统计,如果不带任何参数,即关闭进程统计.         具体用法为:acc ...

  5. 11.5 vmstat:虚拟内存统计

    vmstat vmstat是Virtual Memory Statistics(虚拟内存统计)的缩写,利用vmstat命令可以对操作系统的内存信息.进程状态和CPU活动等进行监视.但是只能对系统的整体 ...

  6. Linux 系统管理命令 - mpstat - CPU信息统计

    命令详解 重要星级: ★★★★☆ 功能说明: mpstat 是 Multiprocessor Statistics 的缩写,是一种实时系统监控工具.mpstat 命令会输出 CPU 的一些统计信息,这 ...

  7. linux系统管理命令(五)

    [教程主题]:1.系统管理命令 [1.1]用户和组管理 在Linux操作系统中,任何文件都归属于某一特定的用户,而任何用户都隶属于至少一个用户组.用户是否有权限对某文件进行访问.读写以及执行,受到系统 ...

  8. Linux基础命令---vmstat显示虚拟内存状态

    vmstat vmstat指令用来显示虚拟内存使用状态,同时也可以显示进程.cpu活动情况.vmstat报告有关进程.内存.分页.块IO.陷阱和CPU活动的信息.生成的第一份报告给出了自上次重新启动以 ...

  9. Linux 系统管理命令 - iotop - 动态显示磁盘 I/O 统计信息

    命令详解 重要星级: ★★★★☆ 功能说明: iotop 命令是一款实时监控磁盘 I/O 的工具, 但必须以 root 用户的身份运行.使用 iotop 命令可以很方便的查看每个进程使用磁盘 I/O ...

随机推荐

  1. ListView更新问题

    ListView和Adapter对象均具备有对象更新方法 ListView对象列表的更新方法1.invalidate();--重绘组件2.invlidateView()--重绘组件并包含所有的View ...

  2. [bzoj4006][JLOI2015]管道连接_斯坦纳树_状压dp

    管道连接 bzoj-4006 JLOI-2015 题目大意:给定一张$n$个节点$m$条边的带边权无向图.并且给定$p$个重要节点,每个重要节点都有一个颜色.求一个边权和最小的边集使得颜色相同的重要节 ...

  3. 学习swift从青铜到王者之swift枚举07

    空枚举 //空枚举 enum SomeEnumeration { // enumeration definition goes here } 枚举基本类型 //枚举基本类型 enum CompassP ...

  4. 分享一个纯css制作的动画化,在网页(手机)载入等的时候能够引用!

    CSS代码例如以下: /* Custom Stylesheet */ body, html { margin: 0; -webkit-font-smoothing: antialiased; back ...

  5. js 终止执行的实现方法

    终止JS运行有如下几种可能: 1.终止函数的运行的方式有两种 (1)在函数中使用return,则当遇到return时,函数终止执行,控制权继续向下运行 (2)在函数中使用try-catch异常处理,需 ...

  6. 关于Scrum

    最近某些产品经理发出下两周的工作计划的时候,喜欢带上sprint这个字眼,看上去貌似是要走敏捷开发这一套,只可惜,我觉得他表现出来的是对敏捷开发和Scrum一窍不通,甚至对软件开发流程都完全不清楚,居 ...

  7. soapUI系列之—-03 Groovy脚本常用方法2

    ------Groovy脚本常用方法 1.解析Json数据脚本 //groovy读取json的方式很简单,re.body.businessinfo.c2rate读取c2rate对应的值 import ...

  8. Notepad++ 两个格式化插件

    格式化HTML--Tidy2 本来都可以通过Notepad++中的“插件>Plugin Manager>Show Plugin Manager>Tidy2” 这种方式来安装,不过内地 ...

  9. [思考]我们应该怎样建设企业IT

    从人员架构上来看,要不要企业自己的IT团队?如果要,应该有什么样的架构?运维,开发,管理,项目? 从是否外包角度看,要不要外包?如果外包,如何建立外包流程? 从业务角度看,企业IT的发展应该是围绕业务 ...

  10. 一些java错误

    @Override must override a superclass method 问题解决 如果在使用Eclipse开发Java项目时,在使用 @Override 出现以下错误: The met ...