vmstat 参数
1. 什么是vmstat?
vmstat是一个用于报告虚拟内存统计信息的命令行工具。它提供了有关系统内存、进程、CPU和IO活动的实时信息。通过使用不同的参数,我们可以获取各种有用的数据,以帮助我们监视和调优系统性能。
2. 基本用法
vmstat命令是在Unix和Linux系统上常见的工具之一。要使用vmstat命令,只需打开终端并输入以下命令:
vmstat [options] [delay [count]]
options: 可选参数,用于指定要显示的统计信息。
delay: 可选参数,表示每次输出之间的延迟时间(以秒为单位)。
count: 可选参数,表示输出次数。
3. 常用参数
3.1 vmstat
最简单的用法是直接运行vmstat命令,它将以默认设置显示一些基本统计信息。
$ vmstat
这将输出以下内容:
procs:进程相关统计信息,包括运行队列长度、等待CPU时间等。
memory:内存相关统计信息,包括空闲内存、缓冲区和缓存使用情况等。
swap:交换空间相关统计信息,包括交换分区使用情况等。
io:IO活动相关统计信息,包括块设备和字符设备的读写情况等。
system:系统相关统计信息,包括中断、上下文切换等。
cpu:CPU使用情况相关统计信息,包括用户态、内核态和空闲时间等。
3.2 -a 参数
vmstat -a命令显示更详细的统计信息,包括进程的状态、内存分配器的状态以及文件缓冲区的状态等。
$ vmstat -a
这将输出更多的列,提供更全面的系统性能数据。
3.3 -d 参数
vmstat -d命令显示磁盘活动相关统计信息,包括每个块设备的读写次数、读写延迟等。
$ vmstat -d
这将输出每个块设备的详细统计信息,帮助我们了解磁盘的使用情况和性能瓶颈。
3.4 -p 参数
vmstat -p <partition>命令用于指定特定分区(例如/dev/sda1)上的磁盘活动统计信息。
$ vmstat -p /dev/sda1
这将输出指定分区上的磁盘活动情况,以便我们更精确地监视特定磁盘分区的性能。
3.5 -s 参数
vmstat -s命令显示系统的内存使用情况统计信息,包括物理内存、交换空间、页面缓存等。
$ vmstat -s
这将输出更详细的内存使用情况统计信息,帮助我们了解系统的内存分配和使用情况。
3.6 -w 参数
vmstat -w命令显示更宽的输出格式,使得每个字段都能够完全显示。
$ vmstat -w
这对于查看较大数值或较长字段名称的统计信息非常有用。
4. 示例和解释
为了更好地理解vmstat命令及其参数,我们来看几个示例:
4.1 示例一:基本用法
$ vmstat
输出示例:
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      0 123456 789012 345678    0    0    1    2  10  20 30 40 50 60 70
解释: - r: 运行队列中正在运行和等待CPU时间片的进程数。 - b: 等待磁盘IO操作完成的进程数。 - swpd: 使用的交换空间大小(以KB为单位)。 - free: 空闲内存大小(以KB为单位)。 - buff: 缓冲区使用的内存大小(以KB为单位)。 - cache: 缓存使用的内存大小(以
KB为单位)。 - si: 每秒从磁盘读入交换空间的大小(以KB为单位)。 - so: 每秒写入磁盘的交换空间大小(以KB为单位)。 - bi: 每秒从块设备读取的块数。 - bo: 每秒向块设备写入的块数。 - in: 每秒中断次数。 - cs: 每秒上下文切换次数。 - us: 用户态CPU使用时间占比。 - sy: 内核态CPU使用时间占比。 - id: CPU空闲时间占比。 - wa: 等待IO操作完成的CPU时间占比。 - st: 虚拟化环境中被偷取的CPU时间占比。
4.2 示例二:显示更详细的统计信息
$ vmstat -a
输出示例:s parameter
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      0 123456 789012 345678    0    0    1    2  10  20 30 40 50 60 70
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r  b  swpd  free  buff  cache  si  so    bi    bo  in  cs us sy id wa st
1  0      0 234567 890123 456789    0    0    2    3  20  30 40 50 60 70
...
解释: - 每隔一段时间,vmstat会输出一组统计信息。每行表示一个时间点的统计信息。
4.3 示例三:显示磁盘活动统计信息
$ vmstat -d
输出示例:
disk-1      reads      read sectors      writes    write sectors
sda            10                100            20              200
sdb            30                300            40              400
解释: - disk-1: 磁盘设备名称。 - reads: 每秒从磁盘读取的次数。 - read sectors: 每秒从磁盘读取的扇区数。 - writes: 每秒向磁盘写入的次数。 - write sectors: 每秒向磁盘写入的扇区数。
示例四:显示特定分区上的磁盘活动统计信息
$ vmstat -p /dev/sda1
输出示例:
disk-1      reads      read sectors      writes    write sectors
sda1            5                50            5                50
解释: - sda1: 指定分区的名称。
示例五:显示系统的内存使用情况统计信息
$ vmstat -s
输出示例:
    12345678 K total memory
    2345678 K used memory
    3456789 K active memory
    4567890 K inactive memory
    5678901 K free memory
      ...
解释: - total memory: 总内存大小。 - used memory: 已使用的内存大小。 - active memory: 活动内存大小。 - inactive memory: 非活动内存大小。 - free memory: 空闲内存大小。
示例六:显示更宽的输出格式
$ vmstat -w
输出示例:
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      0    123    456    789    0    0    1    ...
解释: - 每个字段都能够完全显示,不会被截断。
结论
vmstat命令是一个强大的工具,可以提供有关系统性能和资源使用情况的实时统计信息。通过使用不同的参数,我们可以获取各种有用的数据,以帮助我们监视和调优系统性能。熟练掌握vmstat命令及其参数对于系统管理员和开发人员来说是非常重要的,可以帮助他们更好地了解和优化系统。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。