📅  最后修改于: 2023-12-03 15:02:43.814000             🧑  作者: Mango
vmstat 是一种 Linux 系统性能监控工具,可以报告虚拟内存、进程、CPU活动等各种系统状态信息。
vmstat 通常是与操作系统一起安装的,不需要单独安装。
vmstat 的语法如下:
vmstat [options] [delay [count]]
其中,delay 参数指定每次报告数据之间的秒数,count 参数指定报告的次数。
vmstat 的常用选项如下:
-a
报告所有状态统计-f
报告活动和掉队的进程-s
报告虚拟内存状态-d
报告磁盘 I/O 统计-p
报告指定进程的状态以下是几个常见的 vmstat 命令实例:
使用以下命令可以报告 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 状态:
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 次:
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 命令可以帮助程序员快速诊断系统性能瓶颈问题。