• Linux学习之平均负载的概念和查看方法


    先理解一下平均负载的含义:

    平均负载是指单位时间内,系统处于可运行状态和不可中断状态的进程数,也可以看成平均活跃进程数。

    可运行状态的进程:

    正在使用CPU或者正在等待CPU处理的进程,ps 命令看到的,处于 R 状态(Running 或 Runnable)的进程。

    不可中断状态的进程:

    正处于不可以打断的内核态关键流程中的进程,比如最常见的是等待硬件设备的 I/O 响应,也就是我们在 ps 命令中看到的 D 状态(Uninterruptible Sleep,也称为 Disk Sleep)的进程。

    不可中断状态是对程序的一种保护,要是程序在向磁盘读写数据被打断了,那么就有可能出现进程数据和磁盘数据不一致的情况。
    需要注意的是平均负载与CPU的使用没有直接关系。还需要注意的是,看系统平均负载需要结合CPU的个数。
    接下来使用uptime结合数据说话:
    在这里插入图片描述
    23:11:42表明现在的时间,29 days, 2:12表明到现在为止,系统运行的时间,4 users表明现在有4个用户登录系统,0.01, 0.02, 0.10表明1分钟的平均负载是0.01,5分钟的平均负载是0.02,15分钟的平均负载是0.10。使用man uptime可以看到对于uptime的解释。
    在这里插入图片描述

    uptime gives a one line display of the following information.  The cur‐
           rent time, how long the system has been running,  how  many  users  are
           currently  logged  on,  and the system load averages for the past 1, 5,
           and 15 minutes.
    
           This is the same information contained in the header line displayed  by
           w(1).
    
           System load averages is the average number of processes that are either
           in a runnable or uninterruptable state.  A process in a runnable  state
           is  either using the CPU or waiting to use the CPU.  A process in unin‐
           terruptable state is waiting for some I/O access, eg waiting for  disk.
           The  averages  are  taken over the three time intervals.  Load averages
           are not normalized for the number of CPUs in a system, so a load  aver‐
           age  of 1 means a single CPU system is loaded all the time while on a 4
           CPU system it means it was idle 75% of the time.
           Translate the above into Chinese
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    翻译过来的意思如下:

    uptime 命令会以一行显示以下信息:当前时间,系统运行时间,当前登录的用户数,以及过去1分钟、5分钟和15分钟的系统负载平均值。

    这与 w(1) 命令显示的标题行中包含的信息相同。

    系统负载平均值是可运行或不可中断状态的进程的平均数量。可运行状态的进程正在使用CPU或等待使用CPU。不可中断状态的进程正在等待某些I/O访问,例如等待磁盘。负载平均值是在这三个时间间隔内取得的。负载平均值并没有对系统中的CPU数量进行标准化,因此负载平均值为1表示单个CPU系统一直处于满负荷状态,而在4个CPU的系统中,表示系统75%的时间处于空闲状态。

    最理想的状态状态就是平均活跃进程数等于CPU个数,这样的话,每一个CPU上都运行着一个进程。若平均负载是2的话,就需要看CPU的个数了。

    CPU个数是1的话,意味着还有一半的进程竞争不到CPU。
    CPU个数是2的话,意味着CPU正好被使用完,是理想中状态。
    CPU个数是4的话,意味着CPU还有一半是空闲。

    平均负载与 CPU 使用率

    现实工作中,我们经常容易把平均负载和 CPU 使用率混淆,所以在这里也做一个区分。可能你会疑惑,既然平均负载代表的是活跃进程数,那平均负载高了,不就意味着 CPU 使用率高吗?
    我们还是要回到平均负载的含义上来,平均负载是指单位时间内,处于可运行状态和不可中断状态的进程数。所以,它不仅包括了正在使用 CPU 的进程,还包括等待 CPU 和等待 I/O 的进程。

    CPU 使用率,是单位时间内 CPU 繁忙情况的统计,跟平均负载并不一定完全对应。比如:

    CPU 密集型进程,使用大量 CPU 会导致平均负载升高,此时这两者是一致的;
    I/O 密集型进程,等待 I/O 也会导致平均负载升高,但 CPU 使用率不一定很高;
    大量等待 CPU 的进程调度也会导致平均负载升高,此时的 CPU 使用率也会比较高。

    此文章为9月Day 16学习笔记,内容来源于极客时间《Linux 性能优化实战》

  • 相关阅读:
    【pulsar学习】kafka存在的问题与pulsar应用场景
    “元创新·智生成” 第15届企业数智化学习大会公布嘉宾阵容
    将多张图片制作gif
    C 基础语法2 —— 数组
    C++ 定义一个计数器类,完成倒计时的功能。
    Flutter release打包安卓闪退,但是ios正常,debug两者都正常
    【学习记录】卷积神经网络常用概念
    Linux硬软链接查找文件安装目录的方法
    C#控制台贪吃蛇
    TCP流量控制和拥塞控制
  • 原文地址:https://blog.csdn.net/qq_42108074/article/details/132013079