Перейти до вмісту

Модуль 5.1: Метод USE

Hands-On Lab Available
Ubuntu advanced 30 min
Launch Lab ↗

Opens in Killercoda in a new tab

Продуктивність Linux | Складність: [MEDIUM] | Час: 25–30 хв

Перед початком цього модуля:


Що ви зможете робити після цього модуля

Розділ «Що ви зможете робити після цього модуля»

Після завершення цього модуля ви зможете:

  • Застосувати метод USE (Utilization, Saturation, Errors) систематично до будь-якого ресурсу
  • Діагностувати вузькі місця продуктивності, перевіряючи CPU, пам’ять, диск та мережу по черзі
  • Інтерпретувати ключові метрики (load average, CPU steal, тиск на пам’ять) у контексті здоров’я вузлів K8s
  • Написати скрипт USE-чекліста, що автоматизує початкову діагностику продуктивності

Чому цей модуль важливий

Розділ «Чому цей модуль важливий»

Коли система працює повільно, з чого ви починаєте? Хаотичне відлагодження витрачає час. Метод USE надає системний чекліст для аналізу будь-якої проблеми з продуктивністю.

Розуміння методу USE допоможе вам:

  • Діагностувати системно — перевіряти кожен ресурс по черзі.
  • Швидше знаходити першопричини — не пропускати очевидні вузькі місця.
  • Чітко спілкуватися — «насиченість CPU» звучить професійніше за «все гальмує».
  • Налаштовувати ліміти Kubernetes — розуміти, які метрики дійсно важливі.

Метод USE: Основна концепція

Розділ «Метод USE: Основна концепція»

Для кожного ресурсу (CPU, пам’ять, диск, мережа) перевірте три показники:

МетрикаВизначенняПриклад
Utilization (Утилізація)Відсоток часу, коли ресурс був зайнятийCPU завантажений на 80%
Saturation (Насиченість)Наявність черги на використання ресурсу10 процесів чекають своєї черги на CPU
Errors (Помилки)Кількість подій помилокПомилки введення/виводу на диску

РесурсІнструмент УтилізаціїІнструмент НасиченостіІнструмент Помилок
CPUtop, mpstatvmstat, load averagedmesg
Пам’ятьfree, vmstatvmstat (si/so)dmesg
Дискiostat %utiliostat avgqu-szsmartctl, dmesg
Мережаsar -n DEVnetstat, ssip -s link

Висока утилізація — це не завжди погано. 100% завантаження CPU означає, що ви використовуєте ресурс, за який заплатили. Проблеми починаються з насиченості.

Головний індикатор — load average.

  • Якщо load average > кількості ядер CPU → система насичена (є черга).
  • Перевірити кількість ядер: nproc.

В Linux “Free” пам’ять — це не головне. Важливим є показник available, оскільки ядро використовує вільну RAM для кешування і може її миттєво віддати.

Дивіться на swap (si/so у vmstat). Якщо система активно скидає дані на диск і забирає їх назад — пам’яті катастрофічно не вистачає.


  • Утилізація: %util у iostat -x. 100% означає, що диск постійно зайнятий роботою.
  • Насиченість: avgqu-sz (довжина черги). Якщо черга велика — запити накопичуються швидше, ніж диск може їх обробити.

  1. Що означає абревіатура USE?

    Відповідь Utilization (Утилізація), Saturation (Насиченість), Errors (Помилки).
  2. Як перевірити насиченість пам’яті в Linux?

    Відповідь За допомогою команди `vmstat 1`, дивлячись на колонки `si` (swap-in) та `so` (swap-out). Якщо вони не нульові — система використовує диск замість оперативної пам'яті.
  3. Load average на 4-ядерній системі дорівнює 8.0. Про що це каже?

    Відповідь Система перевантажена (насичена) у два рази. 4 процеси працюють, а ще 4 в середньому чекають своєї черги на процесор.
  4. Якщо всі метрики USE в нормі, а додаток все одно працює повільно, де шукати проблему?

    Відповідь На рівні самого додатка (баги в коді, повільні запити до БД, очікування зовнішніх API). Сама операційна система в такому випадку не є вузьким місцем.

Завдання: Провести повний USE-аналіз вашої системи.

  1. Перевірте CPU (load average та %id):
    Terminal window
    uptime && top -bn1 | head -n 5
  2. Перевірте пам’ять (available та swap):
    Terminal window
    free -h && vmstat 1 2
  3. Перевірте диски (утилізація):
    Terminal window
    iostat -x 1 2
  4. Перевірте мережеві помилки:
    Terminal window
    ip -s link

Критерії успіху: Ви вмієте швидко отримати три ключові метрики для кожного основного ресурсу системи.


  • Метод USE — це системний чекліст для будь-якої системи.
  • Насиченість важливіша за утилізацію при пошуку зависань.
  • Помилки в логах ядра можуть пояснити “дивну” поведінку.
  • Якщо за методом USE все чисто — проблема в коді додатка.

Далі: Модуль 5.2: Планування CPU — зануртеся глибше в те, як ядро розподіляє час між тисячами процесів.