首页 > 其他 > 详细

系统负载笔记

时间:2019-10-19 11:48:19      阅读:51      评论:0      收藏:0      [点我收藏+]

概念

平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数, 也就是平均活跃进程数,它和 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 等工具,辅助分析负载的来源。

系统负载笔记

原文:https://www.cnblogs.com/ShareStack/p/11703089.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!