系统load排查思路

本文详细介绍了Linux系统的负载概念,包括负载的含义、影响因素及如何判断系统负载是否过高。通过分析CPU使用情况、内存状态和I/O状况,使用top、iostat等工具,来排查和定位造成系统load过高的原因。内容涵盖单核和多核CPU的负载分析,以及如何确定是CPU、内存还是I/O资源的过度使用导致的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、什么是系统负载?
   WikiPedia: the system load is a measure of the amount of work that a computer system is doing
负载指的是一种对计算机系统正在处理的工作的度量指标。
简单说就是:进程队列的长度,即多少进程等待被cpu调度。等待的进程少,load低,等待的进程多,load高。
2、什么因素可以造成load的变化?
 load的变化反应的也是系统资源使用情况的变化。
 决定因素:
      cpu的使用、内存的使用、IO资源的使用
      因为一个进程能够被cpu调度,需要有cpu资源、内存资源、IO资源。缺少任何一种资源都能导致进程等待。

冯·诺依曼结构和哈佛结构

注意: 中央处理器的体系架构可以分为:冯·诺依曼结构和哈佛结构
3、如何判断一个系统负载高?
(1)查看系统cpu的个数
(2)查看cpu的1、5、15分钟的平均load值与cpu个数比较。
平均负载:一段时间来系统的负载情况,一般取1分钟、5分钟、15分钟  

针对单核cpu
load average的含义:
load averager

不同load说明问题: 
       1)1分钟Load>15分钟Load<115分钟Load<1
       短期内繁忙,中长期空闲,初步判断是一个抖动或者是拥塞前兆

    21分钟Load>15分钟Load>115分钟Load<1

      短期内繁忙,中期内紧张,很可能是一个拥塞的开始

    31分钟Load>15分钟Load>115分钟Load>1

      短中长期都繁忙,系统正在拥塞

    41分钟Load<15分钟Load>115分钟Load>1

      短期内空闲,中长期繁忙,不用紧张,系统拥塞正在好转

多核CPU分析

    n核cpu时,load<n,系统负载都属于正常情况。

多核

    查看cpu核数量:grep 'process' /proc/cpuinfo | wc -l
    关于cpu理解:
   # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 
   # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
   # 查看物理CPU个数
    cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
   # 查看每个物理CPU中core的个数(即核数)
    cat /proc/cpuinfo| grep "cpu cores"| uniq
   # 查看逻辑CPU的个数
   cat /proc/cpuinfo| grep "processor"| wc -l
4、如何判断是哪个因素造成系统load过高?工具top、iostat
  先声明系统load高,不代表cpu资源不足。
    Load高只是代表需要运行的队列累计过多了。但队列中的任务实际可能是耗Cpu的,也可能是耗i/0及其他因素的

(1)判断cpu使用情况
top中的第三行Cpu(s)行展示了当前CPU的状态:
top
wa低,us高 :说明系统缓慢的原因在于进程占用大量CPU,通常还会伴有教低的id,说明CPU空转时间很少;
wa低,id高 :可以排除CPU资源瓶颈的可能;
wa高 :说明I/O占用了大量的CPU时间,需要检查交换空间的使用,交换空间位于磁盘上,性能远低于内存,当内存耗尽开始使用交换空间时,将会给性能带来严重影响,所以对于性能要求较高的服务器,一般建议关闭交换空间。另一方面,如果内存充足,但wa很高,说明需要检查哪个进程占用了大量的 I/O资源。

(2)判断内存使用情况,可用free -m
top中的第四五行展示了当前内存的状态:
topme
区分cache和buffer:buffer缓冲、cache缓存

(3)判断IO情况
iostat判断磁盘IO的情况
iostat
%util: 采样周期内用于IO操作的时间比率,即IO队列非空的时间比率
如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。

5、判断哪个进程导致的资源使用过度?
 top分析
 lsof分析
 jstack分析      

参考:
http://dbanotes.net/arch/unix_linux_load.html
http://blog.youkuaiyun.com/lxcboke/article/details/52135172
https://www.cnblogs.com/baby123/p/6552537.html
http://heipark.iteye.com/blog/1340384
https://www.cnblogs.com/emanlee/p/3587571.html
https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858810.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值