系统负载笔记

概念

平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数, 也就是平均活跃进程数,它和 CPU 使用率并没有直接关系。


可执行状态的进程是指正在使用cpu和正在等待使用cpu的进程。(ps后看见的R[Runable/Running]状态的进程)


不可中断状态的进程是指处于内核态关键的流程中的进程。比如等待IO响应(ps 看见的D[Disk Sleep]状态的进程)

比如,当一个进程向磁盘读写数据时,为了保证数据的一致性,在得到磁盘回复前,它是不 能被其他进程或者中断打断的,这个时候的进程就处于不可中断状态。如果此时的进程被打 断了,就容易出现磁盘数据与进程数据不一致的问题。

可以理解不可中断状态是对进程和设备的保护机制


平均负载合理范围

平均负载最理想的是等于cpu个数

grep 'processor' /proc/cpuinfo |wc -l

如果平均负载大于cpu的数目的时候是过载,一般说法是高于cpu个数的70%就要排查原因。

看负载的时候需要结合三个数字看,看目前的趋势是在降低还是持续升高。

什么类型的任务会导致高负载

我归结成主要是三类原因:CPU密集型进程、IO密集型进程、进程数过多导致的。

怎么确定是哪种原因导致的?

1、先确定是不是cpu密集型的进程

mpstat查看cpu使用率,如果是这样的情况,显示使用率满,可以确定是cpu密集型的进程

在这里插入图片描述

用pidstat 来查看究竟是哪个进程导致的
在这里插入图片描述

如果需要找到他文件打开文件,可以用lsof -p 2840或者 用-c stress 看进程的文件使用情况
在这里插入图片描述

2、如果不是的话,还是用mpstat看iowait那一列是不是比较高然后导致cpu使用率提高了,如果是的话,同样用pidstat看是哪个程序导致的。(方法是差不多的)

3、进程过多的情况,可以直接使用pidstat看进程情况
在这里插入图片描述

像这样,好几个进程在抢cpu,导致负载过高。

总结

平均负载概念:

平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数, 也就是平均活跃进程数,它和 CPU 使用率并没有直接关系。

平均负载高的原因:

1、有可能是 CPU 密集型进程导致的;

2、平均负载高并不代表 CPU 使用率高,还有可能是 I/O 繁忙了;

排查方案:

当发现负载高的时候,你可以使用 mpstat、pidstat 等工具,辅助分析负载的来源。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值