Linux平均负载如何计算?

2026-05-26 15:181阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1178个文字,预计阅读时间需要5分钟。

Linux平均负载如何计算?

一、平均负载是什么?平均负载是指系统在某一时刻可运行状态的平均进程数,包括正在运行的进程和等待运行的进程。

二、平均负载时的单位时间是什么?

平均负载时的单位时间,是指系统在处理可运行状态和不可中断状态的平均进程数所需的时间。

三、总而言之,平均负载的进程数即为平均活跃进程数。

如何验证这是正确的呢?可以使用`man uptime`命令查看相关说明。


一 平均负载是什么?

  • 平均负载时的单位时间,是系统处于可运行状态和不可中断情况的平均进程数,总之为平均活跃的进程数。怎么验证这是对的呢。使用man uptime如下图所示。
  • 那么什么是不可中断的状态和可运行状态呢
  • 不可中断的状态,顾名思义是这个状态不要打断我,打断我就是搞事情,不如网络一下就不通了。
    可运行状态,也就是这个进程可能是在使用cpu或者在排队等着要使用cpu。

    --不可中断进程

    处于内核态的关键进程。从ps中我们看到的是D状态

    --可运行状态

    正在使用cpu或者正在等待cpu,可以通过ps -ef看到的状态为R状态的进程

    二 平均负载和cpu的关系?

  • 刚才知道了是平均的活跃进程数,那么最理想的是每个cpu刚好占用一个进程,这样子就充分利用了。如果是有两个cpu的情况下。
    • 在只有2个cpu系统上,cpu刚好被完全占用
    • 在4个cpu系统上,那么cpu有一半是空闲的
    • 在1个cpu上,就会出现打架竞争的关系,有一半的进程可能争取不到cpu。
  • 平均负载多少才算合理的呢
  • (1) 先查看有几个cpu

    方法1:top 输出的详细含义后面有介绍

    方法2: cat /proc/cpuinfo /proc是用户态到内核态的桥梁

    方法3:grep 'model name' /proc/cpuinfo | wc -l

    (2) 知道了cpu数,然后通过uptime命令查看平均负载值

    三 在Linux中使用什么工具查看系统负载情况?

  • uptime工具
  • (1) uptime使用

    (2) uptime命令输出的参数含义(主要是最后三个参数)

    Linux平均负载如何计算?

  • top工具
  • (1) top使用

    (2) top命令输出的参数含义
    1)其中第一行包括系统的当前时间(21:49:34),自linux操作系统启动运行以来累计运行时间(0分钟),目前登录到linux操作系统的用户数(1个),以及系统运行在最近1分钟,5分钟和15分钟内系统运行的平均负载。
    2)第二行是关于进程的统计信息,包括系统中现有进程的总数(137),当前正在运行的进程数量(3),处于休眠状态的进程数量(134),处于暂停状态的进程数量(0),处于僵尸状态的进程数量(0)。
    3)第三行是关于CPU的统计信息,CPU处于用户模式(66),CPU处于系统模式(33),CPU处理其优先级经nice值调整过的用户进程的时间量所占百分比(0),CPU处于空闲状态(0),CPU处于等待I/O状态(0.7),CPU处理硬件中断状态(0),CPU处理软件中断状态(0.3),CPU处理st(Steal Time)状态(0)。
    4)第四行是关于内存的统计信息,系统配置的物理内存总量,已用内存数量,空闲内存数量,用作缓冲区的内存数量。
    5)第五行是关于交换区的统计信息,系统配置的交换区总量,已用交换区数量,空闲交换区数量,用作缓冲区的交换区数量。

    四 平均负载和cpu使用率

  • 平均负载高了,就认为cpu使用率高了?
  • 不一定。因为cpu使用(单位时间cpu繁忙程度),包括正在使用cpu的进程和等待cpu和等待io的进程。

    cpu密集:大量进程使用cpu

    io密集:等待io也会导致平均负载升高,但是cpu的使用率不一定高

    五 两个案例

  • 案例1 模拟cpu密集场景
  • (1) 先安装咋们需要的软件包。

    (2) 使用xshell打开三个窗口
    第一个窗口:stress --cpu 1 --timeout 600 模拟一个cpu使用100%的场景

    第二个窗口:运行uptime查看负载 watch -d uptime(watch可以动态观察命令执行情况)

    第三个窗口:mpstat查看cpu使用率情况(mpstat -P ALL) 5.监控所有的cpu,5代表的每5秒输出一下结果

    分析:

    从窗口2可以知道,1分钟的平均负载很快超过了1,但是iowait为0.所以平均负载升高的主要原因应该是cpu使用率为98%所致

    2 案例2 模拟8个进程
    第一个窗口 模拟IO压力,执行sync stress -c 8 8 --timeout 600
    第二个窗口 uptime

    第三个窗口 mpstat查看cpu使用率 midstat -u 5 1

    分析:

    一个cpu被8个进程在争抢

    六 总结

    1 可以通过uptime命令查看系统的基本整体性能。
    2 平均负载的结果可能是cpu密集进程导致也可能是IO繁忙导致
    3 学习工具midstat和stress

    本文共计1178个文字,预计阅读时间需要5分钟。

    Linux平均负载如何计算?

    一、平均负载是什么?平均负载是指系统在某一时刻可运行状态的平均进程数,包括正在运行的进程和等待运行的进程。

    二、平均负载时的单位时间是什么?

    平均负载时的单位时间,是指系统在处理可运行状态和不可中断状态的平均进程数所需的时间。

    三、总而言之,平均负载的进程数即为平均活跃进程数。

    如何验证这是正确的呢?可以使用`man uptime`命令查看相关说明。


    一 平均负载是什么?

  • 平均负载时的单位时间,是系统处于可运行状态和不可中断情况的平均进程数,总之为平均活跃的进程数。怎么验证这是对的呢。使用man uptime如下图所示。
  • 那么什么是不可中断的状态和可运行状态呢
  • 不可中断的状态,顾名思义是这个状态不要打断我,打断我就是搞事情,不如网络一下就不通了。
    可运行状态,也就是这个进程可能是在使用cpu或者在排队等着要使用cpu。

    --不可中断进程

    处于内核态的关键进程。从ps中我们看到的是D状态

    --可运行状态

    正在使用cpu或者正在等待cpu,可以通过ps -ef看到的状态为R状态的进程

    二 平均负载和cpu的关系?

  • 刚才知道了是平均的活跃进程数,那么最理想的是每个cpu刚好占用一个进程,这样子就充分利用了。如果是有两个cpu的情况下。
    • 在只有2个cpu系统上,cpu刚好被完全占用
    • 在4个cpu系统上,那么cpu有一半是空闲的
    • 在1个cpu上,就会出现打架竞争的关系,有一半的进程可能争取不到cpu。
  • 平均负载多少才算合理的呢
  • (1) 先查看有几个cpu

    方法1:top 输出的详细含义后面有介绍

    方法2: cat /proc/cpuinfo /proc是用户态到内核态的桥梁

    方法3:grep 'model name' /proc/cpuinfo | wc -l

    (2) 知道了cpu数,然后通过uptime命令查看平均负载值

    三 在Linux中使用什么工具查看系统负载情况?

  • uptime工具
  • (1) uptime使用

    (2) uptime命令输出的参数含义(主要是最后三个参数)

    Linux平均负载如何计算?

  • top工具
  • (1) top使用

    (2) top命令输出的参数含义
    1)其中第一行包括系统的当前时间(21:49:34),自linux操作系统启动运行以来累计运行时间(0分钟),目前登录到linux操作系统的用户数(1个),以及系统运行在最近1分钟,5分钟和15分钟内系统运行的平均负载。
    2)第二行是关于进程的统计信息,包括系统中现有进程的总数(137),当前正在运行的进程数量(3),处于休眠状态的进程数量(134),处于暂停状态的进程数量(0),处于僵尸状态的进程数量(0)。
    3)第三行是关于CPU的统计信息,CPU处于用户模式(66),CPU处于系统模式(33),CPU处理其优先级经nice值调整过的用户进程的时间量所占百分比(0),CPU处于空闲状态(0),CPU处于等待I/O状态(0.7),CPU处理硬件中断状态(0),CPU处理软件中断状态(0.3),CPU处理st(Steal Time)状态(0)。
    4)第四行是关于内存的统计信息,系统配置的物理内存总量,已用内存数量,空闲内存数量,用作缓冲区的内存数量。
    5)第五行是关于交换区的统计信息,系统配置的交换区总量,已用交换区数量,空闲交换区数量,用作缓冲区的交换区数量。

    四 平均负载和cpu使用率

  • 平均负载高了,就认为cpu使用率高了?
  • 不一定。因为cpu使用(单位时间cpu繁忙程度),包括正在使用cpu的进程和等待cpu和等待io的进程。

    cpu密集:大量进程使用cpu

    io密集:等待io也会导致平均负载升高,但是cpu的使用率不一定高

    五 两个案例

  • 案例1 模拟cpu密集场景
  • (1) 先安装咋们需要的软件包。

    (2) 使用xshell打开三个窗口
    第一个窗口:stress --cpu 1 --timeout 600 模拟一个cpu使用100%的场景

    第二个窗口:运行uptime查看负载 watch -d uptime(watch可以动态观察命令执行情况)

    第三个窗口:mpstat查看cpu使用率情况(mpstat -P ALL) 5.监控所有的cpu,5代表的每5秒输出一下结果

    分析:

    从窗口2可以知道,1分钟的平均负载很快超过了1,但是iowait为0.所以平均负载升高的主要原因应该是cpu使用率为98%所致

    2 案例2 模拟8个进程
    第一个窗口 模拟IO压力,执行sync stress -c 8 8 --timeout 600
    第二个窗口 uptime

    第三个窗口 mpstat查看cpu使用率 midstat -u 5 1

    分析:

    一个cpu被8个进程在争抢

    六 总结

    1 可以通过uptime命令查看系统的基本整体性能。
    2 平均负载的结果可能是cpu密集进程导致也可能是IO繁忙导致
    3 学习工具midstat和stress