📜  Linux 中的 vmstat 命令及示例(1)

📅  最后修改于: 2023-12-03 15:02:43.814000             🧑  作者: Mango

Linux 中的 vmstat 命令及示例

简介

vmstat 是一种 Linux 系统性能监控工具,可以报告虚拟内存、进程、CPU活动等各种系统状态信息。

安装

vmstat 通常是与操作系统一起安装的,不需要单独安装。

语法

vmstat 的语法如下:

vmstat [options] [delay [count]]

其中,delay 参数指定每次报告数据之间的秒数,count 参数指定报告的次数。

操作选项

vmstat 的常用选项如下:

  • -a 报告所有状态统计
  • -f 报告活动和掉队的进程
  • -s 报告虚拟内存状态
  • -d 报告磁盘 I/O 统计
  • -p 报告指定进程的状态
实例

以下是几个常见的 vmstat 命令实例:

报告 CPU、内存和 I/O 统计

使用以下命令可以报告 CPU、内存和 I/O 统计:

vmstat

输出结果如下:

procs -----------------------memory---------------------- ---swap-- -----io---- --system-- -----cpu-----
 r b swpd free buff cache si so bi bo in cs us sy id wa st
 0 0 0 1600428 156192 3354020 0 0 4 52 187 266 0 0 100 0 0

其中,各列的意义如下:

  • procs r: 运行队列中的进程数
  • procs b: 处于不可中断等待状态的进程数
  • memory swpd: 使用的虚拟内存大小
  • memory free: 空闲内存大小
  • memory buff: 缓存内存大小
  • memory cache: 缓存文件系统所使用的内存大小
  • swap si: 从磁盘交换数据到内存的速度(KB/s)
  • swap so: 从内存交换数据到磁盘的速度(KB/s)
  • io bi: 块设备的读取速度(KB/s)
  • io bo: 块设备的写入速度(KB/s)
  • system in: 每秒中断数
  • system cs: 每秒上下文切换数
  • cpu us: CPU 用户空间占用率
  • cpu sy: CPU 系统空间占用率
  • cpu id: CPU 空闲占用率
  • cpu wa: CPU 等待 I/O 的占用率
  • cpu st: 被 hypervisor(如 virtualbox)偷走的 CPU 时间占用率
每 5 秒报告一次 CPU 状态

使用以下命令可以每 5 秒报告一次 CPU 状态:

vmstat 5

输出结果如下:

procs -----------------------memory---------------------- ---swap-- -----io---- --system-- -----cpu-----
 r b swpd free buff cache si so bi bo in cs us sy id wa st
 0 0 0 1600540 156500 3356096 0 0 4 52 187 266 1 0 99 0 0
 1 0 0 1600540 156500 3356096 0 0 0 0 466 837 0 1 99 0 0
 0 0 0 1600540 156500 3356096 0 0 0 20 465 830 0 1 98 1 0
 0 0 0 1600540 156500 3356096 0 0 0 0 460 801 0 1 99 0 0
 0 0 0 1600540 156500 3356096 0 0 0 0 459 808 0 1 99 0 0
...
每 2 秒报告一次 CPU 和内存状态,共报告 3 次

使用以下命令可以每 2 秒报告一次 CPU 和内存状态,共报告 3 次:

vmstat 2 3

输出结果如下:

procs -----------------------memory---------------------- ---swap-- -----io---- --system-- -----cpu-----
 r b swpd free buff cache si so bi bo in cs us sy id wa st
 0 0 0 2310236 33772 1689264 0 0 406 2348 553 1086 4 1 94 1 0
 1 0 0 2309568 33808 1689320 0 0 4 30 146 239 0 0 100 0 0
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 2309752 33816 1689340 0 0 4 46 168 320 1 1 98 0 0
 1 0 0 2309764 33816 1689340 0 0 0 0 421 811 0 1 99 0 0
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 2310156 33824 1689340 0 0 4 44 181 344 1 1 98 1 0
 0 0 0 2310312 33840 1689348 0 0 0 4 431 778 0 1 99 0 0
结论

vmstat 是一个非常有用的性能监控工具,可以很方便地查看系统的 CPU、内存和 I/O 等状态信息。熟练掌握 vmstat 命令可以帮助程序员快速诊断系统性能瓶颈问题。