linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
  • Введение
  • Уроки
  • How it works
  • Симулятор
  • База знаний
  • Собеседование
Index
Categories
All entries
Footer
linuxlab-УчебникиЦеныО платформеКонфиденциальность и куки
Copyright © 2026 LinuxLab. Все права защищены.
home/linux/kb/Процессы и ресурсы/load-average

kb/processes ── Процессы и ресурсы ── beginner

Load average

Три числа в `uptime` - экспоненциальные средние длины очереди процессов (R + D state) за 1, 5 и 15 минут. Имеет смысл только в контексте `nproc`.

view as markdownaka: load-avg, uptime

Что показывает load average

Команда uptime (и хедер top) выдаёт три числа:

load average: 0.45, 0.30, 0.18

Это экспоненциально-взвешенные средние длины очереди процессов которые на момент сэмплинга находились в состоянии R или D (см. process-and-pid). Усреднение - за последние 1, 5 и 15 минут соответственно.

Само значение не нормировано на количество CPU. На машине с 1 ядром LA=1.0 означает «одно ядро занято 100%». На машине с 8 ядрами та же LA=1.0 это «одно из восьми занято».

Смотри в контексте: LA / nproc < 1.0 - недогруз, ~1.0 - предел, >>1.0 - кто-то в очереди (CPU-bound или I/O-bound - см. ниже).

Где данные

  • cat /proc/loadavg - четыре поля: 1m 5m 15m running/total last_pid
  • uptime - то же красивее
  • top / htop - обновляется в реальном времени

Важно: procs_running в /proc/stat - мгновенный счётчик процессов готовых к выполнению. В отличие от LA-1m он не сглажен и реагирует моментально - полезно для дебага.

R vs D - почему высокий LA не всегда CPU-проблема

Процессы в очереди LA это сумма двух типов:

  • R (Running/Runnable) - хочет CPU
  • D (Uninterruptible Sleep) - застрял на I/O в ядре, ждёт диск/NFS/dm

Сценарии при LA=8 на 4-CPU машине:

  • 8 R, 0 D → CPU реально перегружен; нужно больше ядер или меньше работы
  • 0 R, 8 D → CPU простаивает, виноват диск (NFS пропал, БД залипла, md-rebuild). Никакой апгрейд CPU не поможет.

Поэтому при ANY проблеме с LA первая команда - ps -eo state,pid,cmd | awk '$1 ~ /^[RD]/'.

В контейнерах

Контейнер делит ядро с хостом, и /proc/loadavg - не контейнеризован. Внутри Docker-контейнера ты видишь LA всей host-VM, не своего контейнера. Для per-container CPU-pressure используй PSI (Pressure Stall Information) из cgroups v2.

§ команды

bash
uptime

Аптайм + LA-1m, LA-5m, LA-15m

bash
cat /proc/loadavg

Сырые значения + procs_running/procs_total + last_pid

bash
awk -v cores=$(nproc) '{printf "%.2f\n", $1/cores}' /proc/loadavg

Нормализованный LA-1m (значение < 1 = есть запас)

bash
ps -eo state,pid,cmd | awk '$1 ~ /^[RD]/'

Только процессы в R или D state - те что реально влияют на LA

bash
cat /sys/fs/cgroup/cpu.pressure

PSI в cgroups v2 - CPU pressure для текущего контейнера/cgroup'а; точнее LA

§ см. также

  • process-and-pidПроцесс и PIDПроцесс - это запущенная программа со своим PID, памятью, открытыми дескрипторами и UID. Все процессы образуют дерево, корень - init (PID 1).
  • cmd-htophtop - интерактивный монитор процессовhtop - интерактивный TUI-монитор процессов. F-keys: F3 поиск, F4 фильтр, F5 дерево, F6 сортировка, F9 kill. Цветовые столбцы наверху, список внизу. Замена top'а везде, где доступен.
  • cmd-psps - снимок процессовps - снимок процессов в момент вызова. Два диалекта: BSD (`aux`, без дефиса) и UNIX (`-ef`, с дефисом). `-o` задаёт колонки. Для непрерывного просмотра - [[cmd-htop|htop]].
  • cgroupscgroups (v2)cgroups v2 - иерархическая виртуальная FS под `/sys/fs/cgroup` через которую ядро лимитирует CPU/память/I/O процессов. Docker/k8s/systemd пишут сюда.
  • oom-killerOOM killerOOM killer - механизм ядра, который выбирает и завершает процесс когда система упирается в лимит памяти. В контейнерах работает per-cgroup.

§ упоминается в уроках

  • ›advanced-02-cgroups-v2
  • ›advanced-07-perf-and-flame
  • ›beginner-08-load-average
Footer
linuxlab-
Copyright © 2026 LinuxLab. Все права защищены.
Учебники
Цены
О платформе
Конфиденциальность и куки