linux资源瓶颈分析

何为负载?

  1.在top里输出loadaverage aa  bb  cc或者 cat /proc/loadavg,在一定时间内进程平均等待时间,如果这个参数值高,说明系能负载高.

 2.进程为什么会等待执行?
    多任务的OS,进程执行都是分时被调度  A-B-内核-A 过程
    进程的状态(ps auxw) 1.TASK_RUN(可被调度运行)  ,2.可中断等待(长期时间等待IO),3.不可中断IO(如读取  


  磁盘数据) 4.暂停(不回复不可被调度),5.僵尸进程,
    只有1和3可以被内核调度到cpu运行,  loadaverage里的等待也只跟1,3有关
    这样就可以看出 负载高---->进程等待多---->有大量1,3两个状态进程导致---->1是等待cup,3是等待io
    ---->当cup负载或者IO负载会造成系统负载高,造成系统瓶颈

  3. 什么导致cup和io高,那些进程cup消耗高    
     1.ps(ps aux | sort -k3nr | head -n 5)和top命令
       top查找到使用cup(%cup列)最高的进程
       top -H -p 14094 (-p监控指定进程 -H查看进程里各个线程状态) 14870
       ps  -efL  


    2.vmstat 判断是cup还是io的负载
       b列高,说明等待的进程多
       swap列频繁变化说明内存不足
       io列变动频繁问起高说明IO可能是瓶颈 ,可在分析bi(磁盘读),bo(磁盘写)
     3.可使用iostat分析io是否为瓶颈  ,可查看%idle列,如果该列很小,说明io很频繁,可能为io的瓶颈


     
  4.如果分析瓶颈是cup还是io
    如果io,swap,memory都比较小,cup负载高说明在密集计算下cup的逻辑计算能力不足
    如果在vmstat里free很小,si,so值很大,说明系统能存不够
    如果cup使用率低,vmstat的b列值比较大,iostat里%idle比较小,说明是io的瓶颈


  5.代码级的分析,分析热点函数调用测试,每次调用花费时间
    使用工具gpref
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值