0

0

Linux 下如何使用 vmstat 命令

WBOY

WBOY

发布时间:2024-02-14 23:09:02

|

859人浏览过

|

来源于良许Linux教程网

转载

vmstat 是 virtual memory statistics 的缩写,它是linux下一个非常有用的监控工具,除了内存之外,还提供 块 io、cpu 时间 等额外的信息

语法

vmstat 命令的执行不需要特殊的权限,普通用户就可以执行,其语法形式如下

vmstat [options] [delay [count]]

delay 表示数据更新间隔,单位是秒,如果没有指定此值,表示系统启动以来的平均时间,而且此时只输出一次结果

count 表示输出次数,如果没有指定该值,但是指定了 delay 的值,则表示无限次

结果字段说明

在命令行输入 vmstat 并回车, 会输出一次结果

[root@cghost22 ~]# vmstat
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      0 991324    932 537336    0    0     0     0    3    4  0  0 100  0  0
[root@cghost22 ~]#

结果中有许多的字段,下表列出了每个字段的详细说明

字段 说明
r 可运行进程的数量,包括运行态和就绪态
b 处于不可中断睡眠状态的进程数量
swpd 虚拟内存使用量
free 空闲内存
buff 用作buffer的内存数量
cache 用作cache的内存数量
si 从磁盘换入内存的数量
so 从内存换出到磁盘的数量
bi 从块设备接收的块,单位:块/秒
bo 发送到块设备的块,单位:块/秒
in 每秒中断数,包括时钟中断
cs 每秒上下文切换数
us 用户态执行时间
sy 内核态执行时间
id CPU空闲时间
wa 等待IO的时间
st 从虚拟机中偷取的时间

表中第二行 处于不可中断睡眠状态的进程数量,这里的不可中断是指 一个进程在执行某些系统调用时进入的状态,在这种状态下,进程被阻塞,并且不能被中断,直到完成系统调用

字段结果按照颜色分成了几部分,从上到下依次是:进程信息,内存信息,IO信息,系统中断和上下文,CPU时间

内存信息中数值的单位默认是 KB ( 1024 kbytes ), CPU时间字段并不表示具体的时间,而是占总CPU时间的一个百分比

常见选项

选项 说明
-a 显示活跃和非活跃内存
-f 从系统启动至今 fork 的数量,包括 fork、vfork 以及 clone 等系统调用
-s 显示系统事件计数以及内存统计信息
-d 报告磁盘统计信息
-D 统计活动磁盘信息
-p 指定分区的详细信息
-t 追加一列时间显示
-S 按照指定字节单位显示
-w 结果按照宽模式显示
-V vmstat的版本

常见用法

vmstat 命令主要用于识别系统的瓶颈,统计数据的时候,它不会包含自身进程

  • 按照指定时间间隔和次数输出
[root@cghost22 ~]$ vmstat 2 10
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0  12552 148356 234324 3382956    0    0     1    21    4    4  2  2 97  0  0
 1  0  12552 148264 234324 3382980    0    0     0     0 14974 27478  3  2 96  0  0
 1  0  12552 148232 234324 3382984    0    0     0    14 14384 27181  3  2 96  0  0
 0  0  12552 148376 234332 3383052    0    0     0   204 14197 26812  4  2 94  0  0
 0  0  12552 148512 234332 3383088    0    0     0     4 14398 27155  3  2 95  0  0
 0  0  12552 147892 234332 3383128    0    0     0   210 15515 28802  3  2 95  0  0
 1  0  12552 148388 234332 3383156    0    0     0     0 15147 28042  3  2 95  0  0
 0  0  12552 148264 234332 3383168    0    0     0     4 14380 27395  3  1 96  0  0
 0  0  12552 148264 234336 3383216    0    0     0   198 14430 27008  3  1 95  0  0
 2  0  12552 148140 234336 3383252    0    0     0     6 14233 27161  3  2 95  0  0

2 表示每隔 2 秒输出一次结果,10 表示总共输出 10 次,10 次之后程序自动结束

  • 修改内存显示单位

输出的结果中,内存数据的单位默认是 KB,可以通过 -S 选项调整显示的单位,有下面几种单位可供选择

注意:-S 选项对 si、 so 字段无效

JTBC网站内容管理系统5.0.3.1
JTBC网站内容管理系统5.0.3.1

JTBC CMS(5.0) 是一款基于PHP和MySQL的内容管理系统原生全栈开发框架,开源协议为AGPLv3,没有任何附加条款。系统可以通过命令行一键安装,源码方面不基于任何第三方框架,不使用任何脚手架,仅依赖一些常见的第三方类库如图表组件等,您只需要了解最基本的前端知识就能很敏捷的进行二次开发,同时我们对于常见的前端功能做了Web Component方式的封装,即便是您仅了解HTML/CSS也

下载
k    # 1000 bytes
K    # 1024 bytes
m    # 1000 * 1000 bytes
M    # 1024 * 1024 bytes
Linux 下如何使用 vmstat 命令

上图中第一个结果中内存数据显示单位是 KB , 第二个结果中单位是 MB,将第一个结果对应字段的数值除以 1024 就得到了第二个结果

  • 活跃内存和非活跃内存
Linux 下如何使用 vmstat 命令

inact 是非活跃内存,active 是活跃内存

活跃内存是进程在使用的内存,非活跃内存是未运行进程的内存

  • 系统启动以来 fork 的数量

这里的 fork 数量包括 fork、vfork 以及 clone 等系统调用

[root@cghost22 ~]# vmstat -f
        12714 forks
[root@cghost22 ~]# vmstat -f
        12715 forks
[root@cghost22 ~]# vmstat -f
        12716 forks

我们每次在控制台执行一次命令,系统就会 fork 一个新的进程来执行命令,比如像上面的例子,每执行一次 vmstat -f 命令,系统就会 fork 一个新进程

这个选项还可以用于统计某个操作消耗多少次 fork 调用,只需要在操作前后各执行一次 vmstat -f 命令,比较两次结果的差值即可

  • 每行追加一列时间

追加一列时间显示,有助于比较一段时间内的结果

Linux 下如何使用 vmstat 命令
  • 按照宽模式显示

vmstat 结果中的某些字段的数字有时会比较长,而且跟字段名的位置有偏差, 不太适合人类的观看习惯,-w 选项可以按照宽模式显示数据,使结果看起来更直观,下图是分别未使用宽模式和使用了宽模式的一个对比

Linux 下如何使用 vmstat 命令
  • 统计磁盘信息
Linux 下如何使用 vmstat 命令

磁盘信息主要分三个方面:读、写、IO ,读和写以毫秒为单位,IO以秒为单位

读
    total:     成功读取的总数
    merged:    分组读取(产生一个 IO)
    sectors:   成功读取的扇区数
    ms:        读取花费的毫秒
    
写
    total:      成功写入的总数
    merged:     分组写入(产生一个 IO)
    sectors:    成功写入的扇区数
    ms:         写花费的毫秒
    
IO
    cur:    正在进行的IO
    s:      IO花费的秒数
  • 指定磁盘分区信息
Linux 下如何使用 vmstat 命令

上图中,输出结果显示 sda3 分区设备的信息,它们包括:读计数、读取的扇区数,写计数,分区写请求总数

相关专题

更多
counta和count的区别
counta和count的区别

Count函数用于计算指定范围内数字的个数,而CountA函数用于计算指定范围内非空单元格的个数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

193

2023.11.20

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1345

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

700

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

294

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

773

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

571

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

544

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

296

2023.07.20

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

74

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 6.4万人学习

Git 教程
Git 教程

共21课时 | 2.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号