Linux性能监控工具Vmstat命令详解
前言:vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。
描述
vmstat 对系统的进程情况、内存使用情况、交换页和 I/O 块使用情况、中断以及 CPU 使用情况进行统计并报告相应的信息。
用法
vmstat [-a] [-n] [-t] [-S unit] [delay [ count]] vmstat [-s] [-n] [-S unit] vmstat [-m] [-n] [delay [ count]] vmstat [-d] [-n] [delay [ count]] vmstat [-p disk partition] [-n] [delay [ count]] vmstat [-f] vmstat [-V]
选项
-a 显示活动和非活动的内存 -f 显示系统启动自今的fork数量 -t 将时间戳显示在最后 -m 显示slabinfo -n 开关令第一次的信息只显示一次而不是周期地产生。(该选项是默认选项) -s 显示内存统计信息和各种系统事件数量 delay:延时是以秒为单位的刷新时间间隔。如果没有给出此延时时间,则仅显示系统启动至今的平均值。 count:次数指的是更新的次数。如果没有指定此数而又定义了延时时间,则次数的默认值是无穷次。 -d 显示磁盘统计数据 -w 扩大字段的显示宽度(这个选项是为了大内存系统考虑的) -p 显示指定分区的详细统计数据 -S 使用指定单位显示,默认单位为K(1024 bytes),参数有k、K、m、M ,分别代表1000、1024、1000000、1048576字节(bytes) -V 开关可以用来输出该命令的版本信息。
输出信息详细介绍
Procs r: 等待运行的进程数 b: 处在非中断睡眠状态的进程数 Memory swpd: 虚拟内存使用情况,单位:KB free: 空闲的内存,单位KB buff: 被用来做为缓存的内存数,单位:KB Swap si: 从磁盘交换到内存的交换页数量,单位:KB/秒 so: 从内存交换到磁盘的交换页数量,单位:KB/秒 IO bi: 发送到块设备的块数,单位:块/秒 bo: 从块设备接收到的块数,单位:块/秒 System in: 每秒的中断数,包括时钟中断 cs: 每秒的环境(上下文)切换次数 CPU 按 CPU 的总使用百分比来显示 us: CPU 使用时间 sy: CPU 系统使用时间 id: 闲置时间
示例:
[root@huis ~]# vmstat 2 5 #每2秒显示一次x统计信息,共显示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 27596 80972 147036 1294612 0 0 4 587 20 11 1 1 88 10 0 2 0 27596 82708 147036 1294620 0 0 0 288 822 654 6 2 85 8 0 0 0 27596 82584 147036 1294624 0 0 0 286 538 415 1 1 90 8 0 0 0 27596 82492 147048 1294632 0 0 0 3660 673 510 1 1 74 25 0 0 0 27596 82492 147048 1294636 0 0 0 232 696 608 4 1 85 10 0
[root@huis ~]# vmstat -d #显示磁盘信息 disk- ------------reads------------ ------------writes----------- -----IO------ total merged sectors ms total merged sectors ms cur sec ram0 0 0 0 0 0 0 0 0 0 0 ram1 0 0 0 0 0 0 0 0 0 0 ram2 0 0 0 0 0 0 0 0 0 0 ram3 0 0 0 0 0 0 0 0 0 0 ram4 0 0 0 0 0 0 0 0 0 0 ram5 0 0 0 0 0 0 0 0 0 0 ram6 0 0 0 0 0 0 0 0 0 0 ram7 0 0 0 0 0 0 0 0 0 0 ram8 0 0 0 0 0 0 0 0 0 0 ram9 0 0 0 0 0 0 0 0 0 0 ram10 0 0 0 0 0 0 0 0 0 0 ram11 0 0 0 0 0 0 0 0 0 0 ram12 0 0 0 0 0 0 0 0 0 0 ram13 0 0 0 0 0 0 0 0 0 0 ram14 0 0 0 0 0 0 0 0 0 0 ram15 0 0 0 0 0 0 0 0 0 0 loop0 0 0 0 0 0 0 0 0 0 0 loop1 0 0 0 0 0 0 0 0 0 0 loop2 0 0 0 0 0 0 0 0 0 0 loop3 0 0 0 0 0 0 0 0 0 0 loop4 0 0 0 0 0 0 0 0 0 0 loop5 0 0 0 0 0 0 0 0 0 0 loop6 0 0 0 0 0 0 0 0 0 0 loop7 0 0 0 0 0 0 0 0 0 0 sda 136164 12159 8900472 1424193 17695973 166407005 1472738036 281879696 0 141114
[root@huis ~]# vmstat -s #显示内存统计信息和各种系统事件数量 1912548 total memory 1831984 used memory 855600 active memory 822524 inactive memory 80564 free memory 147528 buffer memory 1283840 swap cache 2099192 total swap 27600 used swap 2071592 free swap 1641416 non-nice user cpu ticks 5 nice user cpu ticks 804102 system cpu ticks 110634429 idle cpu ticks 12153283 IO-wait cpu ticks 3041 IRQ cpu ticks 227747 softirq cpu ticks 0 stolen cpu ticks 4452700 pages paged in 736574630 pages paged out 1911 pages swapped in 7087 pages swapped out 412485903 interrupts 314472144 CPU context switches 1442885388 boot time 147449 forks
[root@huis ~]# 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 0 0 27600 87632 147584 1280728 0 0 4 587 21 11 1 1 88 10 0
注:下面是不加-w选项的显示,可以进行对比一下,两者显示的宽度明显不同,而且加-w选项后各字段与相对的值显示更整齐
[root@huis ~]# 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 27600 85924 147688 1281412 0 0 4 587 21 11 1 1 88 10 0
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。