Linux工具之vmstat

主宰稳场 提交于 2019-12-01 16:15:26
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 5
procs -----------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  -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    46034  10817 1740264  445160   8384 182115 1524000  988214      0    451
sr0       45      0     360       3      0      0       0       0      0      0
dm-0   55308      0 1711602  733301 190477      0 1523816 19493891      0    451
disk- ------------reads------------ ------------writes----------- -----IO------
       total merged sectors      ms  total merged sectors      ms    cur    sec
dm-1     322      0    2576     439      0      0       0       0      0      0
dm-2     251      0    2002     338      7      0      56       0      0      0
 
说明:
这些信息主要来自于/proc/diskstats.
merged:表示一次来自于合并的写/读请求,一般系统会把多个连接/邻近的读/写请求合并到一起来操作.
 
 
 
 
实例6:查看/dev/sda1分区的读/写
 
[root@natasha etc]# vmstat  -p /dev/sda1
sda1          reads   read sectors  writes    requested writes
                 681      22108         19        12
 
说明:
这些信息主要来自于/proc/diskstats。
reads:来自于这个分区的读的次数。
read sectors:来自于这个分区的读扇区的次数。
writes:来自于这个分区的写的次数。
requested writes:来自于这个分区的写请求次数。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!