Как оценить нагрузку на сервер? Что такое load average?

Для оценки нагрузки на сервер в Linux используется понятие load average. Load average – это количество процессов, стоящих в очереди на исполнение. Если значение высокое, значит, некоторым процессам приходится ждать, пока другие освободят ресурсы сервера. В результате время исполнения некоторых процессов может сильно увеличиваться. Если сайт достаточно нагружен, то очередь понемногу растет, и в итоге сайт вообще перестает откликаться.

В load average три числа – это среднее количество процессов в очереди за 1, 5 и 15 минут. Теоретически load average должно быть меньше количества ядер. На VPS клиенту часто выделяют одно ядро, поэтому load average 1-1.5 может быть пределом, при котором не заметно тормозов. В один момент времени одно ядро может выполнять только один процесс. Планировщик ядра распределяет вычислительные возможности процессора между всеми процессами, выполняемыми в системе, и создаётся иллюзия одновременной работы. При этом всегда какое-то количество процессов стоит в очереди. Если речь идет о системе с одним ядром CPU, то при:

  • load average <1 – идеальная ситуация, сервер не нагружен;

    РАССЫЛКА «ХОЧУ МИЛЛИОН»

    1-3 письма в неделю. Зарабатывай 1.5 млн в месяц, работая 3 ч в день.

      Никакого спама! Можно отписаться в любой момент.

    • load average 1-3 сервер нагружен, но работает в нормальном режиме;

    • load average 3-10 сервер загружен довольно сильно, надо следить за нагрузкой и выявлять причины такой нагрузки;

    • load average >10 сервер перегружен, надо принимать меры;

    • load average >20 сервер сильно тормозит, трудно получить ответ сервера

    Если у Вашего сервера несколько ядер, то эти цифры надо увеличить на количество ядер.

    Чтобы проверить текущее значение load average, достаточно набрать top в консоли.

     Что вызывает большую нагрузку на сервер?

    Типичными причинами высокой нагрузки на сервер являются следующие проблемы:

    • большая загрузка процессора (CPU);
    • нехватка оперативной памяти (Memory);
    • избыточная нагрузка на диск (Disk I/O);
    • перегрузка по сетевому порту.

    Как проверить загрузку CPU, memory, disk i/o?

    Это зависит от того, хотите ли вы проверить текущую нагрузку на сервер или же посмотреть историю нагрузки на сервер. Для проверки текущей загрузки процессора, диска и памяти  достаточно воспользоваться командой: top.

    Для того, чтобы отслеживать историю нагрузки на процессор, оперативную память и диск, нужно установить и использовать инструмент sar. Как это сделать, подробно описано в этой статье: The Sysadmin’s Toolbox: sar.

    Как диагностировать и откорректировать избыточную нагрузку на диск, подробно описано в этой статье: Избыточная нагрузка на диск на VPS: определение причин и устранение проблемы.

     

    Полезные ссылки:

    UNIX Load Averages Explained

    Hack and / – Linux Troubleshooting, Part I: High Load

    Troubleshooting high server loads on Linux servers

    How to Install sysstat on CentOS 5.7 Linux Server

     

     

     

     

    Вопросы? Мысли? Не стесняйтесь, делитесь)!