【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处于空闲状态的时间占比

       

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值