Цель урока: Разобраться в главной метрике здоровья сервера - Load Average. Мы узнаем, почему "загрузка процессора 10%" не всегда означает, что всё хорошо, установим утилиту для стресс-тестирования и своими руками "положим" сервер под нагрузкой, чтобы увидеть, как меняются цифры.

Мы работаем от root.

Часть 1: Теория. Что такое Load Average?

В уроке 25 вы видели в top и htop три загадочные цифры в углу, например: 0.05, 0.40, 1.12.
Это и есть Load Average (Средняя загрузка).

Многие думают, что это процент загрузки процессора. Это не так!

Аналогия с мостом:
Представьте мост (ваш процессор).

  • Если на мосту едут машины, но пробки нет - нагрузка низкая.

  • Если мост забит машинами, и еще 10 машин стоят перед въездом и ждут - нагрузка высокая.

Load Average показывает количество процессов, которые:

  1. Уже считаются процессором.

  2. ИЛИ стоят в очереди и ждут процессора.

  3. ИЛИ (важно!) ждут диска (записи/чтения).

Как читать три цифры?
Они показывают среднее значение за 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 сессию).

  1. В первом окне запустите мониторинг:

    htop

    (Следите за цифрами Load Average вверху справа).

  2. Во втором окне запустим 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.

Итоги урока

Теперь вы умеете читать "кардиограмму" сервера.

  1. Load Average - это длина очереди задач.

  2. Три цифры показывают динамику (1, 5, 15 мин).

  3. Норма - это когда Load Average меньше количества ваших ядер.

  4. Высокий Load Average может быть из-за процессора (CPU) или из-за диска (IO).

В Уроке 66 мы перейдем к оперативной памяти (RAM). Мы узнаем, почему Linux "съедает" всю свободную память (спойлер: это хорошо), что такое SWAP (файл подкачки), и почему, когда память кончается, приходит страшный OOM Killer и убивает ваши процессы.

Перейти к просмотру - УРОК №66.

подарок Промо-код: PROMO15 - скидка 15%! огонь

Введите при оформлении первого заказа на сайте: Hosting-VDS.com

авторское право цифровые решения

Помог ли вам данный ответ? 0 Пользователи считают это полезным (0 голосов)