侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux vmstat命令教程:性能监控与系统统计(附案例详解和注意事项)

Linux下的vmstat(Virtual Memory Statistics的缩写)命令是一个非常实用的工具,用于监测系统的虚拟内存、进程、CPU活动以及块设备I/O等信息,对于系统管理员来说,它是性能分析与问题诊断的重要工具。

Linux vmstat命令介绍

vmstat,即虚拟内存统计命令,能够报告关于内核线程、虚拟内存、磁盘、陷阱和CPU活动的信息。通过该命令,我们可以获得系统的即时状态,包括内存使用情况、进程状态以及CPU的使用情况等。

Linux vmstat命令适用的Linux版本

vmstat命令几乎在所有的Linux发行版中都是可用的。如果你发现系统中没有这个命令,可以通过包管理器安装它:

# 基于apt的发行版(如Debian、Ubuntu、Raspbian、Kali Linux等)
sudo apt-get update && sudo apt-get install procps

# 基于yum的发行版(如RedHat,CentOS 7等)
sudo yum update && sudo yum install procps-ng

# 基于dnf的发行版(如Fedora,CentOS 8等)
sudo dnf update && sudo dnf install procps-ng

# 基于apk的发行版(如Alpine Linux)
sudo apk add --update procps

# 基于pacman的发行版(如Arch Linux)
sudo pacman -Syu && sudo pacman -S procps-ng

# 基于zypper的发行版(如openSUSE)
sudo zypper ref && sudo zypper in procps

# 基于pkg的FreeBSD发行版
sudo pkg update && sudo pkg install procps

# 基于pkg的OS X/macOS发行版
brew update && brew install procps

Linux vmstat命令的基本语法

语法格式:

vmstat [options] [delay [count]]

Linux vmstat命令的常用选项或参数说明

选项描述
-a显示活跃和非活跃内存
-f显示自系统启动以来发生的系统叉数量
-m显示slabinfo
-n显示每列一次,与延迟时间配合使用
-s显示内存相关统计
-d显示磁盘相关统计
-p显示指定磁盘分区的统计
-S设置显示单位(K、M、G)
-r显示内存页面的统计
-t显示时间戳信息

以上是vmstat的部分常用选项,不同的选项适用于不同的监控与分析场景。

Linux vmstat命令实例详解

实例1:显示基本的系统状态信息

[linux@bashcommandnotfound.cn ~]$ vmstat

这条命令将显示系统的虚拟内存状态、进程、CPU活动等基本信息。

实例2:设置间隔时间和次数

[linux@bashcommandnotfound.cn ~]$ vmstat 5 10

这条命令将每5秒显示一次系统状态,总共显示10次。

实例3:使用-a选项显示活跃和非活跃内存

[linux@bashcommandnotfound.cn ~]$ vmstat -a

这条命令将显示活跃和非活跃的内存信息。

实例4:使用-s选项显示内存相关统计

[linux@bashcommandnotfound.cn ~]$ vmstat -s

这条命令会显示更详细的内存统计信息。

实例5:使用-d选项显示磁盘相关统计

[linux@bashcommandnotfound.cn ~]$ vmstat -d

这条命令将显示每个磁盘设备的读写统计信息。

实例6:显示时间戳信息

[linux@bashcommandnotfound.cn ~]$ vmstat -t

这条命令会在输出的每一行信息中包含时间戳信息,有助于了解每项数据的具体采集时间。

实例7:自定义显示单位

[linux@bashcommandnotfound.cn ~]$ vmstat -S M

这条命令将所有显示单位设置为MB,方便阅读大量数据。

实例8:查看内存页面统计

vmstat -r

这个命令会展示关于内存页面的活动,包括页面的交换、缓存和缓冲区的使用情况。

实例9:查看Slab信息

vmstat -m

Slab是内核中内存管理的一部分,这个命令将会列出Slab缓存的信息。

实例10:查看特定磁盘分区统计

vmstat -p /dev/sda1

这个命令将显示磁盘分区/dev/sda1的IO统计,如果你希望监控特定分区的性能,这非常有用。

实例11:以指定的单位显示信息

vmstat -S K

这个命令将所有的数据以KB单位显示。这对于查看大量内存数据非常方便,你可以根据需要替换KM(兆字节)或G(千兆字节)。

实例12:以固定间隔显示系统状态,直到被终止

vmstat 2

这个命令会每2秒刷新一次输出,直到你用Ctrl+C终止它。这种方式允许你实时监视系统状态的变化。

实例13:查看系统启动以来的总fork数量

vmstat -f

这个命令将显示自系统启动以来所发生的fork,vfork和clone的总次数。这可以帮助你了解系统的负载情况。

实例14:连续输出系统状态并附加时间戳

vmstat 1 5 -t

这个命令每1秒输出一次系统状态,连续输出5次,并在每条信息后添加时间戳。这有助于记录在特定时间点的系统性能数据。

实例15:查看内核线程统计

vmstat -a

这个命令将提供活动和非活动内存的统计数据,这包括了在活动列表和非活动列表中的内存页面。

实例16:查看系统的CPU和IO等待时间

vmstat -w

这个命令将显示CPU的空闲时间和等待IO的时间,这有助于判断系统是否因为IO操作而导致CPU等待。

实例17:混合使用多个选项

vmstat -s -d -t

这个命令将显示内存统计(-s),磁盘统计(-d),以及每个输出都会附加一个时间戳(-t)。这种混合使用选项的方式,可以同时监控多个系统性能指标。

注意事项

  1. 使用vmstat时,确保你对输出的数据有一定的理解。例如,高的siso(swap-in和swap-out)值可能表示内存不足。
  2. vmstat的输出中CPU的id列显示的是空闲时间百分比,如果这个值很低,表明CPU可能成为性能瓶颈。
  3. 运行vmstat时,如果没有指定延迟时间和次数,它只会输出当前的瞬间状态。定期监测可能更有助于识别趋势和问题。
  4. 如果你需要监控特定磁盘或分区,请使用-p选项并指定相应的设备。
  5. vmstat不会消耗太多的系统资源,因此它适合长时间运行以监控系统状态。
  6. 在分析输出时,应考虑系统的整体性能,包括CPU、内存、I/O等多个方面,而不是仅关注单一指标。
0

评论区