vmstat (virtual memory statistics,虚拟内存统计)的缩写。可以对操作系统的虚拟内存、进程、CPU活动进行监控。 1.命令格式vmstat [-a] [-n] [-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] 2、命令功能用来显示虚拟内存的信息 3.命令参数-a:显示活跃和非活跃内存-f:显示从系统启动至今的fork数量 。-m:显示slabinfo-n:只在开始时显示一次各字段名称。-s:显示内存相关统计信息及多种系统活动数量。delay:刷新时间间隔。如果不指定,只显示一条结果。count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。-d:显示磁盘相关统计信息。-p:显示指定磁盘分区统计信息-S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)-V:显示vmstat版本信息。 4、使用实例实例1:显示虚拟内存使用情况 [root@natasha etc]# vmstat 5 6 【表示在5秒时间内进行6次采样。】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 874200 110868 817340 0 0 27 24 52 46 0 0 99 1 0 0 0 0 874448 110892 817344 0 0 0 17 49 39 0 0 100 0 0 0 0 0 874316 110900 817344 0 0 0 3 14 17 0 0 100 0 0 0 0 0 874316 110900 817344 0 0 0 0 14 15 0 0 100 0 0 0 0 0 874316 110900 817344 0 0 0 0 14 15 0 0 100 0 0 0 0 0 874316 110900 817344 0 0 0 6 15 15 0 0 100 0 0 字段说明:Procs(进程):r: 运行队列中进程数量b: 等待IO的进程数量 Memory(内存):swpd: 使用虚拟内存大小free: 可用内存大小buff: 用作缓冲的内存大小cache: 用作缓存的内存大小 Swap:si: 每秒从交换区写到内存的大小so: 每秒写入交换区的内存大小 IO:(现在的Linux版本块的大小为1024bytes)bi: 每秒读取的块数bo: 每秒写入的块数 系统:in: 每秒中断数,包括时钟中断。cs: 每秒上下文切换数。 CPU(以百分比表示):us: 用户进程执行时间(user time)sy: 系统进程执行时间(system time)id: 空闲时间(包括IO等待时间),中央处理器的空闲时间 。以百分比表示。wa: 等待IO时间 备注: 如 果 r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。如果pi,po 长期不等于0,表示内存不足。如果disk 经常不等于0, 且 在 b中的队列 大于3, 表示 io性能不好。Linux在具有高稳定性、可靠性的同时,具有很好的可伸缩性和扩展性,能够针对不同的应用和硬件环境调整,优化出满足当前应用需要的最佳性能。因此企业在维护Linux系统、进行系统调优时,了解系统性能分析工具是至关重要的。 命令:vmstat 5 5表示在5秒时间内进行5次采样。将得到一个数据汇总能够反映真正的系统情况。 实例2:显示活跃和非活跃内存[root@natasha etc]# vmstat -a 2 5procs ———–memory———- —swap– —–io—- –system– —–cpu—– r b swpd free inact active si so bi bo in cs us sy id wa st 0 0 0 874324 789836 152472 0 0 27 23 51 45 0 0 99 1 0 0 0 0 874324 789836 152440 0 0 0 0 23 15 0 0 100 0 0 0 0 0 874316 789836 152496 0 0 0 0 16 20 0 0 100 0 0 0 0 0 874316 789836 152496 0 0 0 0 13 14 0 0 100 0 0 0 0 0 874316 789836 152496 0 0 0 0 15 18 0 0 100 0 0 实例3:查看系统已经fork了多少次[root@natasha etc]# vmstat -f 57772 forks 说明:这个数据是从/proc/stat中的processes字段里取得的 实例4:查看内存使用的详细信息[root@natasha etc]# vmstat -s 1938628 total memory 1064428 used memory 152472 active memory 789836 inactive memory 874200 free memory 110948 buffer memory 817344 swap cache 4161528 total swap 0 used swap 4161528 free swap 363 non-nice user cpu ticks 3431 nice user cpu ticks 12176 system cpu ticks 3264498 idle cpu ticks 28344 IO-wait cpu ticks 6 IRQ cpu ticks 67 softirq cpu ticks 0 stolen cpu ticks 872232 pages paged in 761984 pages paged out 0 pages swapped in 0 pages swapped out 1679490 interrupts 1478922 CPU context switches 1448312772 boot time 57774 forks 说明:这些信息的分别来自于/proc/meminfo,/proc/stat和/proc/vmstat。 实例5:查看磁盘的读/写 [root@natasha etc]# vmstat -ddisk- ————reads———— ————writes———– —–IO—— total merged sectors ms total merged sectors ms cur secram0 0 0 0 0 0 0 0 0 0 0ram1 0 0 0 0 0 0 0 0 0 0ram2 0 0 0 0 0 0 0 0 0 0ram3 0 0 0 0 0 0 0 0 0 0ram4 0 0 0 0 0 0 0 0 0 0ram5 0 0 0 0 0 0 0 0 0 0ram6 0 0 0 0 0 0 0 0 0 0ram7 0 0 0 0 0 0 0 0 0 0ram8 0 0 0 0 0 0 0 0 0 0ram9 0 0 0 0 0 0 0 0 0 0ram10 0 0 0 0 0 0 0 0 0 0ram11 0 0 0 0 0 0 0 0 0 0ram12 0 0 0 0 0 0 0 0 0 0ram13 0 0 0 0 0 0 0 0 0 0ram14 0 0 0 0 0 0 0 0 0 0ram15 0 0 0 0 0 0 0 0 0 0loop0 0 0 0 0 0 0 0 0 0 0loop1 0 0 0 0 0 0 0 0 0 0loop2 0 0 0 0 0 0 0 0 0 0loop3 0 0 0 0 0 0 0 0 0 0loop4 0 0 0 0 0 0 0 0 0 0loop5 0 0 0 0 0 0 0 0 0 0loop6 0 0 0 0 0 0 0 0 0 0loop7 0 0 0 0 0 0 0 0 0 0sda 46034 10817 1740264 445160 8384 182115 1524000 988214 0 451sr0 45 0 360 3 0 0 0 0 0 0dm-0 55308 0 1711602 733301 190477 0 1523816 19493891 0 451disk- ————reads———— ————writes———– —–IO—— total merged sectors ms total merged sectors ms cur secdm-1 322 0 2576 439 0 0 0 0 0 0dm-2 251 0 2002 338 7 0 56 0 0 0 说明:这些信息主要来自于/proc/diskstats.merged:表示一次来自于合并的写/读请求,一般系统会把多个连接/邻近的读/写请求合并到一起来操作. 实例6:查看/dev/sda1分区的读/写 [root@natasha etc]# vmstat -p /dev/sda1sda1 reads read sectors writes requested writes 681 22108 19 12 说明:这些信息主要来自于/proc/diskstats。reads:来自于这个分区的读的次数。read sectors:来自于这个分区的读扇区的次数。writes:来自于这个分区的写的次数。requested writes:来自于这个分区的写请求次数。