命令详解

重要星级:

★★★★☆

功能说明:

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. Python学习之-- IO 操作

    阻塞IO / 非阻塞IO /IO多路复用 / 异步IO 说明:同步IO包含(阻塞IO / 非阻塞IO /IO多路复用),因为他们有个共同特性就是都需要内核态到用户态的一个等待. 基本概念解释,环境限定 ...

  2. python之-- 反射

    反射定义:通过字符串映射或者修改程序运行时的状态,属性,方法.方法有如下4个:1:getattr(object,name,default=None):根据字符串去获取obj对象里的对应的方法的内存地址 ...

  3. RabbitMQ最佳实践

    在使用消息机制时,我们通常需要考虑以下几个问题: 消息不能丢失 保证消息一定能投递到目的地 保证业务处理和消息发送/消费的一致性 本文以RabbitMQ为例,讨论如何解决以上问题. 消息持久化 如果希 ...

  4. Maven新建webapp项目报错Could not resolve artifact org.apache.maven.archetypes:maven-archetype-webapp:pom:RELEASE

    Windows-Preferences 在搜索框输入maven,点击下面的Archetypes--->Add Remote Catalog... 对应输入 http://repo1.maven. ...

  5. http://www.16aspx.com/Code/Show/5352

    http://www.16aspx.com/Code/Show/5352 可视化工作流引擎RoadFlowV1.3 http://www.cnblogs.com/f2flow/p/4212678.ht ...

  6. Jekyll 搭建

    Jekyll搭建个人主页 早上昨晚上弄hexo的时候就开始有问题,发现命令有错误!今天早上来就开始把另外建立了仓库,转Jekyll,并不顺利,做了一天了,基本的theme的本地和远端主页可以显示,但当 ...

  7. android POI搜索,附近搜索,周边搜索定位介绍

    POI搜索有三种方式.依据范围和检索词发起范围检索poiSearchInbounds.城市poi检索poiSearchInCity,周边检索poiSearchNearBy. 下以周边检索为例介绍怎样进 ...

  8. hdu 3549 Flow Problem(最大流模板题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3549 Problem Description Network flow is a well-known ...

  9. MySQL基础笔记(二) 完整性约束

    我们知道,一种数据模型必须包含三个基本的部分: 构造机制(数据结构):主要描述数据的类型.内容.性质以及数据间的联系等. 运算机制(数据操作):主要描述在相应的数据结构上的操作类型和操作方式. 约束机 ...

  10. asp.net mvc的权限管理设计

    现在集中展示用户-角色-权限管理的功能,因此,所有数据表一律简化处理.   1 后台管理效果 (1)角色管理 (2)权限管理   2 数据库设计(MSSQL) (1)用户表dbo.Users 项 类型 ...