zoukankan      html  css  js  c++  java
  • LINUX 查看当前系统的内存使用情况 vmstat

    Linux vmstat 命令

    Vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。

    相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)

    > vmstat

    [ceshi@aaaaaaaa ~]$ 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      0 323208 290276 5500528    0    0     0     2    0    0  0  0 100  0  0

    一般、vmstat工具的使用是通过两个参数来完成的、

    第一个参数为采样的时间、单位是秒、第二个采样的次数

    > vmstat 2 1   // 表示:每隔两秒、采集一次服务器状态

    [ceshi@aaaaaaaa ~]$ vmstat 2 1

    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      0 323084 290276 5500528    0    0     0     2    0    0  0  0 100  0  0

    实际项目中、我们一般是在一段时间内一直监控、不想监控、直接结束就ok

    > vmstat 2  // 表示每隔两秒采集一次数据、一直采集(直到主动结束程序)

    [ceshi@aaaaaaaa ~]$ vmstat 2

    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      0 323208 290276 5500528    0    0     0     2    0    0  0  0 100  0  0

     0  0      0 323192 290276 5500528    0    0     0     0  248  341  0  0 100  0  0

     0  0      0 323192 290276 5500528    0    0     0     0  225  333  0  0 100  0  0

     2  0      0 323192 290276 5500528    0    0     0     0  225  332  0  0 100  0  0

    ^C

    具体的、每一个参数所代表的内容如下:

    r

    表示运行队列;

    当这个值超过了CPU数目,就会出现CPU瓶颈了;

    一般负载超过了3就高了、超过了5个就比较高、超过了10个就不正常了、服务器就比较危险了;

    top的负载类似每秒运行的队列。如果队列过大、表示CPU很忙、

    b

    表示阻塞的进程、

    swpd

    表示虚拟内存使用的大小

    如果大于0、表示机器物理内存不足、如果不是内存泄漏的原因、就应该升级内存、或者迁移内存;

    free

    表示空闲内存的大小

    buff

    表示用来存储目录里面的内容、权限等缓存;

    cache

    表示缓存的大小、cache直接用来记录我们打开的文件、给文件做缓存;

    (将空闲的物理内存的一部分拿来坐文件和目录的缓存、提高程序执行的性能)

    (当程序使用内存时、buff/cache会很快地被使用)

    si

    表示每秒从磁盘读入虚拟内存的大小;

    如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉;

    so

    表示每秒虚拟内存写入磁盘的大小;

    bi

    表示块设备每秒接收的块数量;

    这里的块设备是指系统上所有的磁盘和其他块设备;

    bo

    表示块设备每秒发送的块数量;

    例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。

    in

    表示每秒CPU的中断次数、包括时间中断;

    cs

    表示每秒上下文切换次数、

    当调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换;

    这个值要越小越好,太大了,要考虑调低线程或者进程的数目;

    us

    表示用户CPU时间、

    sy

    表示系统CPU时间;

    如果太高,表示系统调用时间长

    id 

    表示空闲CPU时间;

    一般的 id + us + sy = 100

    可以理解为:id是空闲CPU使用率、us是用户CPU使用率、sy是系统CPU使用率;

    wt

    表示等待IO、CPU时间;

  • 相关阅读:
    fastx_toolkit软件使用说明
    转:bwa的使用方法
    转: Annovar 软件注释流程介绍
    转:linux下bwa和samtools的安装与使用
    GFF3格式
    漂浮广告窗
    CPU指令集设计RISC和CISC
    南方
    成都 夹三品
    微嵌1
  • 原文地址:https://www.cnblogs.com/laowenBlog/p/6889473.html
Copyright © 2011-2022 走看看