yijiu 的博客

自由的风码

Linux loadavg

Linux loadavg???

定义:特定时间间隔内运行队列中平均的进程数,进程数由内核统计得来。

topwuptime 等命令可以查看 Linux loadavg
load 是从 /proc/loadavg 中读取的。
显示的三个数值是 1min、5min、15min的平均负载。

运行队列(Run Queue)

runqueue 的数据结构定义了许多内容,每个CPU的核上都会维护一个 runqueue数据结构。 其中的 nr_runningnr_uninterruptible分别放了这个CPU核上处于 R 状态和 D 状态的进程数量。

  • R:正在运行的和准备就绪的等待运行的进程(running&runnable)
  • D:不可中断的进程(I/O)(uninterruptible)

不可中断进程:

  • 此进程不在CPU执行指令,但是它还是占用着CPU。
  • 进程在做其他事,一般是磁盘I/O。
  • 不可中断是因为所在的事很重要,打断得话后果很严重,如进程在读取磁盘数据,打断的话可能会导致数据不一致。

运行队列是内核为每个CPU核维护的一个数据结构。
运行队列里包含了 R 状态的进程和 D 状态的进程。

loadavg 在 Linux 里面写死了会计算 3 个数值,分别是 1min, 5min, 15min 的 loadavg 结果。

不能仅靠 loadavg 判断系统性能指标,还得查看其他得参数,综合判断。

留下你的脚步