• Linux工具之vmstat


    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:来自于这个分区的写请求次数。
  • 相关阅读:
    HBase MapReduce 一些 ClassNotFoundException 所缺少的jar包
    Eclipse 连接不上 hadoop 的解决办法
    Log4j 2 配置
    mysql 查询结果显示行号
    js刷新页面方法 -- (转)
    python 错误--UnboundLocalError: local variable '**' referenced before assignment
    Webview 中FaultyInfo代码说明
    HTML中设置超链接字体 & 字体颜色
    apache log 按日期记录 格式 <GOOD>-- (转)
    linux 下 /bin /sbin 的区别 -- (转)
  • 原文地址:https://www.cnblogs.com/liuxing0007/p/11692414.html
Copyright © 2020-2023  润新知