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

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

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

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

  • 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

 

 

 

 

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