У нас есть кластер с физическими машинами HW
Каждая машина содержит 32 ЦП
# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 32
On-line CPU(s) list: 0-31
Thread(s) per core: 2
Core(s) per socket: 8
Теперь мы хотим отправлять сигнал тревоги каждый раз, когда средняя нагрузка от времени безотказной работы до 5 минут от времени безотказной работы достигает порогового значения.
Насколько я понимаю, нам следует беспокоиться, когда среднее значение нагрузки (за 5 минут с момента безотказной работы) превышает 32 (количество ЦП).
Я прав ?
решение1
Средняя загрузка в первую очередь не показывает загрузку ЦП, это приближение длины очереди рабочих элементов. В реальной жизни на это часто гораздо больше влияют циклы ЦП, потраченные впустую на ожидания ввода-вывода, чем фактически используемые циклы ЦП (конечно, это зависит от рабочей нагрузки).
Взгляните на инструмент top
, чтобы определить первую оценку того, как ваши процессоры тратят свое время. Как правило (итолькокак таковой) рассмотреть
- Высокие
User
проценты являются здоровыми — ваша машина используется хорошо. - Высокие
Sys
проценты могут указывать на не очень эффективное приложение (или гостевые виртуальные машины, работающие на неоптимизированной комбинации ОС/драйвера) - Высокие
Wait
значения означают, что ваш ввод-вывод (скорее всего, хранилище) не справляется. Это может снова указывать на необходимость оптимизации внутри вашего приложения или просто на то, что вы слишком многого требуете от вашего оборудования для хранения данных (главные места для проверки: используются ли вращающиеся диски для чувствительных к задержкам рабочих нагрузок? Используете ли вы RAID5 для небольших записей?)