Что такое CPU Load Average в Linux и когда стоит волноваться? Какое облако обеспечит максимальную производительность?

Вероятно вы уже видели параметр Load Average. Это 3 числа, показываемых при выполнении команд uptime и top.


Большинство пользователей знают, что load average, это 3 числа, отражающих среднюю нагрузку за периоды времени в одну минуту, 5 минут и 15 минут. При этом меньшие числа лучше. Большие числа — либо есть проблема либо машина перегружена. Однако что является порогом, какие числа хороши а какие плохи? Когда следует предпринимать меры?

В конце статьи мы сравним облачные платформы InfoboxCloud по способности обеспечивать максимальную производительность (это всегда компромисс между производительностью и стоимостью).

Аналогия: трафик на дороге

Давайте начнем с простейшего случая, когда у сервера только один процессор, а далее разберем и более сложные случаи.

Одноядерный процессор похож на одну полосу с трафиком. При этом:
0.00 означает, что на этой полосе трафика нет вовсе. Фактически значение между 0.00 и 1.00 означает, что машина свободно проедет по полосе без притормаживаний.
1.00 означает, что вся полоса занята, но пробок нет.
Более 1.00 означает, что в полосу не все влезли и ждут в пробке.



Так идеальная загрузка 1.00?

Не совсем. С загрузкой 1.00 у вас нет запаса ресурса CPU.
Если загрузка более 0.70 — время подумать об увеличении ресурса CPU.
Если загрузка более 1.00 — нужно найти и исправить проблему, в противном случае будет выстраиваться очередь.
Если загрузка 5.0 и более — у вас серьезные проблемы и приложение или сайт будут явно тормозить.

Многопроцессорные системы. Загрузка 3.00 и ОК

Используется четырехядерный процессор? С загрузкой 3.00 действительно все ОК.
На многопроцессорных системах загрузка относительна числу доступных ядер. На 4х ядерном процессоре 100% загрузка: 4.00 — 4 полосы движения занято.

На какой из 3х параметров Load Average лучше смотреть?

Если загрузка 1.0 на первом минутном интервале — все в порядке. Если такая загрузка продолжается в течение 15 минут — повод задуматься об увеличении мощности CPU: добавлении ядер или частоты.

Причины для высокого Load Average при неизменной нагрузке

Высокий Load Average может быть следствием нехватки процессорного времени (или выставленных параметров CPU limit) или пропускной способности дисковой подсистемы (или низкого приоритета дисковой подсистемы).

Все виртуальные машины одинаковые?

Например, в облаке Virtuozzo Infrastructure скорость дисковой подсистемы программно не ограничена, а на VPS приоритет дисковой подсистемы понижен по сравнению с облаком (но VPS и дешевле).

В облаке Azure Pack Infrastructure гарантируется выделение от 25% до 90% CPU или 90% CPU (самый дорогой вариант, но и самый надежный) в зависимости от пожелания клиента (a ресурсы памяти и диска всегда гарантированы); на Virtuozzo Infrastructure гарантии выделения CPU нет (хотя есть внутренние регламенты по обеспечению процессорного времени CPU на Virtuozzo, обеспечивающие высокий уровень производительности, но программная гарантия есть только на Azure Pack Infrastructure).

Какой сервис выбрать? Если задача требует максимальной предсказуемости бизнес-приложений, нужно использовать Azure Pack Infrastructure (а еще на эту платформу при регистрации сейчас действует скидка 50% на первые 6 месяцев). Для веб-сайтов лучше всего себя показывает Virtuozzo Infrastructure, сочетая высокую производительность, гибкость и возможности автомасштабирования. Если цель: максимальная экономия, нужно использовать VPS от Infobox.

Успехов!

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.