• 【Linux】内存查看vmstat命令(虚拟内存统计)


    • vmstat命令:虚拟内存统计

      • CPU使用率
      • 内存试用
      • 虚拟内存交换情况
      • IO读写情况
    • process

      • r:运行和等待CPU时间片的进程数

        • 超过cpu个数, 出现CPU瓶颈

        • 长时间大于1,CPU不足,需要增加CPU

      • b:正在等待资源的进程数,

        • 正在等待I/O

        • 内存交换

    • Memory

      • swpd:交换到内存交换区的内存数量 单位 k虚拟内存已使用的大小

        • 不为0,或者比较大,如超过100m,si、so的值长期0,系统性能还是正常的

          • 表示你的机器物理内存不足了

          • 如果不是程序内存泄露的原因

          • 该升级内存了或者把耗内存的任务迁移到其他机器。

      • free:当前空闲页面列表中内存数量 单位 k

      • buffer:块设备的读写

      • cache,page cache的缓存数量

        • 较大,说明用到cache的文件较多,如果此时IO中的bi比较低,说明文件系统效率比较好

    • swap

      • si:由内存进入内存交换区的数量

        • 如果这个值大于0,表示物理内存不够用或者内存泄露了

        • 要查找耗内存进程解决掉

      • so:由内存交换区进入内存的数量

        • 同上

    • IO

      • bi:从块设备读入数据的总量(读磁盘)单位kb/s,默认1024byte

      • bo:块设备写入数据的总量(写磁盘)单位kb/s

        • 读取文件,bo就要大于0

      • bi+bo = 1000,超过1000,wa值较大,考虑均衡磁盘负载

        • 结合iostat输出来分析

      • bi和bo一般都要接近0,不然就是IO过于频繁,需要调整

    • system 显示采集间隔内发生的中断数

      • in:某一时间间隔内每个设备中断数

      • cs:每秒产生的上下文切换数

        • 每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数

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

        • cs比磁盘i/o和网络信息包速率高得多,需要进一步排查

        • CS过大表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的

    • cpu

      • us:用户方式下花费CPU时间占比

        • us值高,用户进程消耗的CPU时间多,如果长期大于50%,优化用户程序(算法或其他措施)

      • sy:内核进程花费的CPU时间占比

        • 如果太高,表示系统调用时间长,例如是IO操作频繁

        • us+sy=80%,如果大于80%,可能存在cpu不足

      • id:一般 us+sy+id=100

      • wa:IO等待所占用的CPU时间占比

        • 30%,如果超过30%,IO等待严重,

          • 可能磁盘大量随机访问造成

          • 磁盘或磁盘访问控制器的带宽瓶颈造成(块操作)

      • id:cpu处于空闲状态的时间占比

         

  • 相关阅读:
    【react-native】关于ios与android的环境搭建
    5 个冷门但非常实用的 Kubectl 使用技巧,99% 的人都不知道
    Spring Cloud(二):Spring Cloud Alibaba Nacos
    Java基础知识篇之函数调用基本原理
    前端时间分片渲染
    【小程序项目开发 -- 京东商城】uni-app 商品分类页面(下)
    jsp常问面试题
    在线数据迁移,数字化时代的必修课 —— 京东云数据迁移实践
    Docker 安装RabbitMq
    基于python的NBA球员数据可视化分析的设计与实现
  • 原文地址:https://blog.csdn.net/mengwuyoulin/article/details/128011824