
Цель урока: Разобраться в главной метрике здоровья сервера - Load Average. Мы узнаем, почему "загрузка процессора 10%" не всегда означает, что всё хорошо, установим утилиту для стресс-тестирования и своими руками "положим" сервер под нагрузкой, чтобы увидеть, как меняются цифры.
Мы работаем от root.
Часть 1: Теория. Что такое Load Average?
В уроке 25 вы видели в top и htop три загадочные цифры в углу, например: 0.05, 0.40, 1.12.
Это и есть Load Average (Средняя загрузка).
Многие думают, что это процент загрузки процессора. Это не так!
Аналогия с мостом:
Представьте мост (ваш процессор).
-
Если на мосту едут машины, но пробки нет - нагрузка низкая.
-
Если мост забит машинами, и еще 10 машин стоят перед въездом и ждут - нагрузка высокая.
Load Average показывает количество процессов, которые:
-
Уже считаются процессором.
-
ИЛИ стоят в очереди и ждут процессора.
-
ИЛИ (важно!) ждут диска (записи/чтения).
Как читать три цифры?
Они показывают среднее значение за 1 минуту, 5 минут и 15 минут.
Это позволяет понять тренд:
-
1.0, 0.5, 0.1 - нагрузка растет (сейчас хуже, чем 15 минут назад).
-
0.5, 2.0, 5.0 - нагрузка падает (15 минут назад был ад, сейчас полегчало).
Какое число "нормальное"?
Всё зависит от количества ядер (vCPU) вашего процессора.
-
Если у вас 1 ядро: Load Average 1.0 - это предел (100% загрузка). Если 2.0 - значит, очередь в два раза длиннее, чем процессор может обработать (тормоза).
-
Если у вас 4 ядра: Load Average 1.0 - процессор отдыхает (занято только 1 ядро из 4). Предел - 4.0.
Часть 2: Практика. Смотрим текущую нагрузку
Самая простая команда, чтобы узнать, как дела у сервера (и сколько он работает без перезагрузки):
uptime

Вывод: 07:30:45 up 10 days, 20:54, 1 user, load average: 0.00, 0.00, 0.00
Здесь всё идеально тихо (по нулям).
Также есть команда w (от слова "who"), она показывает и нагрузку, и кто сейчас подключен к серверу:
w
Часть 3: Установка инструмента для стресс-тестов
На пустом сервере смотреть на нули скучно. Давайте создадим искусственную нагрузку.
Для этого есть отличная утилита stress.
apt update
apt install -y stress
Часть 4: Практика. Нагружаем процессор (CPU Bound)
Откройте второе окно терминала (вторую SSH сессию).
-
В первом окне запустите мониторинг:
htop(Следите за цифрами Load Average вверху справа).
-
Во втором окне запустим stress. Прикажем ему забить работой 1 ядро на 30 секунд:
stress --cpu 1 --timeout 30s

Что наблюдаем:
-
В htop одна из полосок CPU мгновенно станет 100%.
-
Load Average начнет ползти вверх.
-
Через 30 секунд stress выключится, загрузка CPU упадет, но Load Average будет снижаться медленно (это ведь среднее значение).
Эксперимент:
Если у вас 2 ядра, попробуйте запустить stress --cpu 2. Load Average будет стремиться к 2.0.
Часть 5: Практика. Нагружаем диск (I/O Bound)
А вот это самое интересное. Бывает, что сайт тормозит, а процессор свободен (0%). Почему?
Потому что диск не успевает отдавать данные. Это называется I/O Wait.
Давайте сымитируем ситуацию, когда программа бешено пишет на диск.
В окне с htop обратите внимание на цвет полосок процессора.
-
Зеленый - работа программ.
-
Красный - работа ядра.
-
Серый (или другой цвет, зависит от настроек) - IO Wait (ожидание диска).
Запускаем нагрузку на диск (1 "писатель", 30 секунд):
stress --io 1 --timeout 30s
Смотрите в htop.
Скорее всего, процессор не будет загружен на 100%, но Load Average все равно полезет вверх!
Потому что процессы стоят в очереди, ожидая медленный жесткий диск.
Для системы нет разницы: очередь из-за слабого процессора или из-за медленного диска. Load Average растет в обоих случаях.
Часть 6: Как узнать количество ядер?
Чтобы понимать, какое значение Load Average для вас критическое, нужно знать, сколько у вас ядер.
Самый быстрый способ:
nproc
Если ответ 1 - значит, всё, что выше 1.0, это тормоза.
Если ответ 4 - вы можете жить спокойно до 3.0-4.0.
Итоги урока
Теперь вы умеете читать "кардиограмму" сервера.
-
Load Average - это длина очереди задач.
-
Три цифры показывают динамику (1, 5, 15 мин).
-
Норма - это когда Load Average меньше количества ваших ядер.
-
Высокий Load Average может быть из-за процессора (CPU) или из-за диска (IO).
В Уроке 66 мы перейдем к оперативной памяти (RAM). Мы узнаем, почему Linux "съедает" всю свободную память (спойлер: это хорошо), что такое SWAP (файл подкачки), и почему, когда память кончается, приходит страшный OOM Killer и убивает ваши процессы.
Перейти к просмотру - УРОК №66.
Промо-код: PROMO15 - скидка 15%!
Введите при оформлении первого заказа на сайте: Hosting-VDS.com

