vmstat - Report virtual memory statistics
报告虚拟内存统计信息。 展示的信息可以用做系统资源监控。
语法格式:
vmstat [options] [delay [count]]
options:
- delay :每次更新之间的时间差,秒为单位。默认为1秒。
- count :显示几次数据,默认为1次。如果delay不为1时,count又没给定值时,就会一直更新,直到ctrl + C。
- -f :开机至今system fork进程的数量。
- -s :显示包含各种事件计数器和内存统计信息。
- -S :使用指定单位显示,k(1000),K(1024),m(1000000),M(1048576)字节,默认单位K。
- -t :在每条信息的,显示收集信息的时间
###字段描述: **procs:** * r :可运行进程的数量(运行中或等待运行时) * b :不间断(阻塞)睡眠中的进程数
Memory:
- swpd(swap):虚拟内存使用量。
- free:空闲内存的数量。
- buff:用作缓冲区的内存量。
- cache:用作缓存的内存量。
- inact:非活动内存的数量。(- a选项)
- active:活动内存的数量。(- a选项)
Swap(如果有值,说明内存不够用。):
- si :每秒从硬盘交换到内存的数量。
- so :每秒从内存写入硬盘的数量。
IO:
- bi :块设备发送的块数量(块/秒),查看系统默认大小可以使用
getconf PAGESIZE
得4096(bytes) - bo :块设备每秒接收的块数量。块设备是指,可随机访问的设备。
System:
- in :每秒中断次数,包括时钟
- cs :每秒上下文切换次数
CPU(总CPU时间的百分比):
- us :运行非内核代码时间,也就用户CPU时间
- sy :运行内核代码的CPU时间
- id :空闲时间
- wa :等待IO的时间
- st :偷窃虚拟的时间
常用示例:
[root@node1 ~]# vmstat -s -S M #显示内存信息,玩法很多样,根据需求将数据排列及展示。
974 M total memory
228 M used memory
287 M active memory
316 M inactive memory
229 M free memory
2 M buffer memory
514 M swap cache
2047 M total swap
0 M used swap
2047 M free swap
5377 non-nice user cpu ticks
25 nice user cpu ticks
9916 system cpu ticks
584827 idle cpu ticks
3567 IO-wait cpu ticks
0 IRQ cpu ticks
2270 softirq cpu ticks
0 stolen cpu ticks
187701 pages paged in
230771 pages paged out
0 pages swapped in
0 pages swapped out
1005535 interrupts
1227884 CPU context switches
1547427987 boot time
8620 forks
[root@node1 ~]# vmstat 2 -t #类似于top的实时刷新数据
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- -----timestamp-----
r b swpd free buff cache si so bi bo in cs us sy id wa st EST
2 0 0 234776 2108 526684 0 0 30 37 166 202 1 2 97 1 0 2019-01-13 21:55:17
0 0 0 234776 2108 526684 0 0 0 2 137 127 1 2 97 0 0 2019-01-13 21:55:19
0 0 0 234776 2108 526684 0 0 0 0 127 116 1 2 97 1 0 2019-01-13 21:55:21
总结: `vmstat`非常详细的一款监控虚拟内存的工具,还附代一些其它资源信息。