Linux中vmstat命令教程

时间:2020-02-23 14:40:41  来源:igfitidea点击:

vmstat命令是"虚拟内存统计信息"的首字母缩写,是一种Linux实用程序,用于显示与内存消耗,磁盘使用情况和其他系统信息有关的统计信息。
事不宜迟,让我们开始分析vmstat命令。

如果您的系统没有vmstat命令,那么不用担心,因为它位于'sysstat'软件包下。

Debian/Ubuntu用户可以使用apt命令安装软件包:

sudo apt install sysstat

其他Linux发行版用户可以使用其标准安装命令来安装"'sysstat'"。

在继续进行介绍之前,我们首先需要获得root用户访问权限,因为某些信息对于某些用户可能是禁止的。
这可以通过'sudo -s'或者'sudo su'完成。

vmstat命令的基本输出

完成设置所需的所有义务后,让我们在终端上运行'vmstat'

首先,对于任何Linux用户而言,可疑的输出都是无法理解的。
让我们尝试对此有所启发。
输出中有六个部分,下面是一些非缩进的统计信息:

  • procs – Process Statisticsr –系统中活动的进程数。

  • b –睡眠进程数。

  • 内存–内存统计信息swpd –系统正在使用的虚拟内存量。
    交换空间最初未被占用。
    但是随着系统的物理内存即将达到其极限,内核决定使用交换分区。

  • free –可用内存量。

  • buff –暂时用作缓冲区的内存量。

  • 缓存–缓存内存量。

  • swap –交换空间Statisticssi –从磁盘交换内存的速率。

  • so –内存换出到磁盘的速率。

  • io –输入/输出统计信息bi –从磁盘读取块的速率。

  • bo –将块写入磁盘的速率。

  • 系统–计划统计信息–系统中断的速率。

  • cs –调度程序完成上下文切换的速率。

  • cpu – CPU Statisticsus –用户进程上花费的CPU时间的百分比。

  • sy –在内核进程上花费的CPU时间的百分比。

  • id –空闲CPU时间的百分比。

  • wa –等待输入/输出花费的CPU时间的百分比。

  • st –虚拟机窃取的CPU时间的百分比。

基本输出提供的上述统计信息是瞬时的,即该特定时间点的系统信息。
为了获得输出的时间戳,我们可以使用'-t'选项。

vmstat -t

带有时间戳的vmstat命令的基本输出

连续统计输出

为了获得一系列的"'vmstat'"输出,我们需要运行以下命令:

vmstat <DELAY> <ITERATIONS>

系列" vmstat"输出

这个过程不是很难理解。

  • <DELAY> –由于'vmstat'提供了离散的值,我们可以指定每个统计之间的延迟,命令显示。

  • <ITERATIONS> –我们需要命令打印信息的次数。

内存和调度统计

通过运行以下命令,我们可以显示一些与内存有关的扩展信息:

vmstat -s

Vmstat内存统计信息

这些汇总统计数据是不言自明的。

  • 第一组行处理系统中使用的内存量:物理内存总量
  • 当前使用的内存
  • 活动内存–最近使用
  • 非活动内存–最近未使用
  • 可用内存
  • 缓冲存储器
  • 高速缓存存储器
  • 交换内存信息
  • 以下几行代码表示以各种方式使用的CPU:用于高优先级用户进程的CPU(不是很好)
  • 优先级较低的用户进程所用的处理器时间(不错)
  • 内核进程的CPU
  • CPU闲置
  • 输入/输出管理处理器
  • CPU的中断请求
  • 用于软件中断的处理器时间
  • 虚拟机窃取了CPU
  • 接下来是与操作系统中的分页有关的值:虚拟内存中分页的页数
  • 分页到虚拟内存的页面数
  • 从交换内存读取的页数
  • 写入交换内存的页数
  • 最后一组数字表示:自启动以来的中断数
  • 由系统调度程序完成的上下文切换数量
  • 上次启动时间的时间戳
  • 创建子进程完成的派生数。
    (可以通过运行'vmstat -f'直接获得此信息)

使用vmstat命令显示磁盘统计信息

该命令为磁盘使用情况提供了类似的统计信息。
可以通过以下方式访问它:

vmstat -D

使用" vmstat"的磁盘统计信息

每个条目显示一些关键信息:

  • 系统中存在的磁盘数。

  • 系统中的分区数。

  • 请求的读取总数。

  • 合并读取的数量以提高性能。

  • 已从磁盘读取的扇区数。

  • 读取磁盘所花费的时间(以毫秒为单位)。

  • 请求的写入总数。

  • 合并写入的数量以提高性能。

  • 已经写入磁盘的扇区数。

  • 写入磁盘所花费的时间(以毫秒为单位)。

  • 当前正在进行的输入/输出数。

  • 等待输入/输出所花费的时间。

有关每个磁盘使用情况的详细统计信息,我们可以使用`-d'选项。

vmstat -d

上面的输出针对系统中存在的每个特定磁盘显示相同的统计信息。

Linux内核的内存使用情况

Linux内核实现了平板级的内存管理,以有效利用系统中的内存。
vmstat命令提供与Linux内核维护的平板有关的信息。

可以通过以下方式获得这种输出:

vmstat -m

输出中的列表示:

  • 第一列表示平板的名称(缓存)。

  • 其次是平板中当前保存的对象数(数字)。

  • 接下来是平板中存在的可用对象的总数(总计)。

  • 下一个值是平板的大小(以字节为单位)(大小)。

  • 最后一个值是每个平板中的页数(页数)。