Що таке 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 означає, що в смугу не всі влізли і чекають в пробці.

Що таке cpu load average в linux і коли варто хвилюватися яке хмара забезпечить максимальну

Так ідеальна завантаження 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.