Linux中vmstat命令教程
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
输出中的列表示:
第一列表示平板的名称(缓存)。
其次是平板中当前保存的对象数(数字)。
接下来是平板中存在的可用对象的总数(总计)。
下一个值是平板的大小(以字节为单位)(大小)。
最后一个值是每个平板中的页数(页数)。