Как оценить нагрузку на сервер? Что такое 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: определение причин и устранение проблемы.
Полезные ссылки:
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