linux cpu 负载

1.cpu load又被称为cpu负载

具体定义为在特定时间间隔内cpu运行队列中的平均进程数,这里进程包括正在运行和准备好运行的进程。

对于单核处理器来说,负为<=1.00,表示目前的进程数量在处理器的承受范围内,即所有进程都不需要等待,处理器可以很快的进行处理,如果超过1.00就说明队列中有线程处于等待状态,值越大代表等待的进程越多

对于多核处理器,负载值超过对应的核数才代表负载过高

2.load过高原因

频繁full GC可能会造成cpu负载过高

死循环也可以造成cpu负载过高

3.使用工具

(1)在负载过高时,使用top -c按cpu占用量显示进程,按大写的P按cpu占有资源排列

(2)top -Hp pid显示一个pid的线程运行信息列表,按大写的P按cpu占有资源排列

(3)可以使用printf “%x” 线程Id,将线程Id转为16进制

(4)vmstat命令,显示正在排队和IO的进程情况,其中表示运行队列中的进程数,b表示等待IO的进程数量

4.load和cpu使用率

上图中97.1%id代表cpu的空闲状态,在top命令下,按数字1查看所有cpu的使用率情况

cpu使用率是指:在分给某个进程时间片时,这个进程是否使用了cpu的计算能力。

cpu load高和占用率高不一定是同时发生的状况,以下举例说明

(1)多个进程绑定到同一个核然后导致Load过高,但cpu总的占用率不高,查看每个cpu占用率时会发现,单个cpu的占用率高

(2)进程在获得cpu使用权时,进程大部分时间处于僵死,睡眠,等待IO的情况下,cpu的使用率就会很低,但load不一定高

(3)当进程需要大量计算,任务执行时间长的时候,cpu使用率会上升,但load不一定高

(4)频繁的上下文切换耗费了大量的CPU时间,导致真正用在运算的CPU时间片比较少(低CPU使用率),却有很多进程在等待运行(高Load)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值