Модуль 5.1: Метод USE
Продуктивність Linux | Складність:
[MEDIUM]| Час: 25–30 хв
Передумови
Розділ «Передумови»Перед початком цього модуля:
- Обов’язково: Модуль 1.2: Процеси та systemd
- Обов’язково: Модуль 2.2: Контрольні групи (cgroups)
- Бажано: Базове розуміння системних метрик.
Що ви зможете робити після цього модуля
Розділ «Що ви зможете робити після цього модуля»Після завершення цього модуля ви зможете:
- Застосувати метод 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 (Помилки) | Кількість подій помилок | Помилки введення/виводу на диску |
Чекліст ресурсів
Розділ «Чекліст ресурсів»| Ресурс | Інструмент Утилізації | Інструмент Насиченості | Інструмент Помилок |
|---|---|---|---|
| CPU | top, mpstat | vmstat, load average | dmesg |
| Пам’ять | free, vmstat | vmstat (si/so) | dmesg |
| Диск | iostat %util | iostat avgqu-sz | smartctl, dmesg |
| Мережа | sar -n DEV | netstat, ss | ip -s link |
CPU Метрики
Розділ «CPU Метрики»Утилізація
Розділ «Утилізація»Висока утилізація — це не завжди погано. 100% завантаження CPU означає, що ви використовуєте ресурс, за який заплатили. Проблеми починаються з насиченості.
Насиченість
Розділ «Насиченість»Головний індикатор — load average.
- Якщо
load average> кількості ядер CPU → система насичена (є черга). - Перевірити кількість ядер:
nproc.
Пам’ять (Memory)
Розділ «Пам’ять (Memory)»Утилізація
Розділ «Утилізація»В Linux “Free” пам’ять — це не головне. Важливим є показник available, оскільки ядро використовує вільну RAM для кешування і може її миттєво віддати.
Насиченість
Розділ «Насиченість»Дивіться на swap (si/so у vmstat). Якщо система активно скидає дані на диск і забирає їх назад — пам’яті катастрофічно не вистачає.
Диск (I/O)
Розділ «Диск (I/O)»- Утилізація:
%utilуiostat -x. 100% означає, що диск постійно зайнятий роботою. - Насиченість:
avgqu-sz(довжина черги). Якщо черга велика — запити накопичуються швидше, ніж диск може їх обробити.
Тест
Розділ «Тест»-
Що означає абревіатура USE?
Відповідь
Utilization (Утилізація), Saturation (Насиченість), Errors (Помилки). -
Як перевірити насиченість пам’яті в Linux?
Відповідь
За допомогою команди `vmstat 1`, дивлячись на колонки `si` (swap-in) та `so` (swap-out). Якщо вони не нульові — система використовує диск замість оперативної пам'яті. -
Load average на 4-ядерній системі дорівнює 8.0. Про що це каже?
Відповідь
Система перевантажена (насичена) у два рази. 4 процеси працюють, а ще 4 в середньому чекають своєї черги на процесор. -
Якщо всі метрики USE в нормі, а додаток все одно працює повільно, де шукати проблему?
Відповідь
На рівні самого додатка (баги в коді, повільні запити до БД, очікування зовнішніх API). Сама операційна система в такому випадку не є вузьким місцем.
Практична вправа
Розділ «Практична вправа»Завдання: Провести повний USE-аналіз вашої системи.
- Перевірте CPU (load average та %id):
Terminal window uptime && top -bn1 | head -n 5 - Перевірте пам’ять (available та swap):
Terminal window free -h && vmstat 1 2 - Перевірте диски (утилізація):
Terminal window iostat -x 1 2 - Перевірте мережеві помилки:
Terminal window ip -s link
Критерії успіху: Ви вмієте швидко отримати три ключові метрики для кожного основного ресурсу системи.
Підсумок
Розділ «Підсумок»- Метод USE — це системний чекліст для будь-якої системи.
- Насиченість важливіша за утилізацію при пошуку зависань.
- Помилки в логах ядра можуть пояснити “дивну” поведінку.
- Якщо за методом USE все чисто — проблема в коді додатка.
Далі: Модуль 5.2: Планування CPU — зануртеся глибше в те, як ядро розподіляє час між тисячами процесів.