понедельник, 3 сентября 2012 г.

Польза правильного сайзинга ВМ

Я думаю, что описываемый случай является хорошим примером правильного (под данным понятием я подразумеваю достаточного, а не избыточного) выделения ресурсов виртуальной машине.

В кластере с большим количеством ВМ с избыточным уровнем переподиски также развёрнут сервер с 4 ЦПУ на котором работает БД на SQL.

На графике ниже видно, что до 24 июля среднее значение метрики CPU Ready было около 10%, а 24 числа резко скакнуло выше 30%. То есть, 30% времени виртуальная машина ждала, когда на физическом ЦПУ будут доступны ресурсы для выполнения. Приложение, работающее с данной БД испытывало серьёзные проблемы с производительностью из-за этого.

В тот же день количество vCPU было снижено с 4 до 2, и результат очевиден. Значение CPU Ready упало примерно до 1%, и оставалось на том же уровне и дальше. При этом производительность всех приложений, использующих данный БД, в том числе и vCenter Server, серьёзно выросла.

 
Правильное (достаточное) выделение ресурсов улучшает производительность не только данной ВМ, но и снижает уровень борьбы за ресурсы на всём кластере, что влияет на производительность всех ВМ.

Также важно отметить, что это урезаны ресурсы были только у одной машины, и чем больше ВМ будет отрегулировано в кластере, тем меньше будет значение CPU Ready, а производительность будет расти. Снижение нагрузки на кластер также позволяет увеличить значение консолидации ресурсов без снижения доступности или производительности.

Отдельно хотелось бы отметить, что лично я считаю, что данная ВМ могла бы использовать все преимущества и от 4 vCPU, но не в кластере с таким высоким уровнем борьбы за ресурсы.

Теперь вы верите в правильный сайзинг ВМ?

15 комментариев:

  1. вы написали, что у вас кластер с избыточным количеством ресурсов. Почему наступил момент когда CPU Ready стал 30% ?

    ОтветитьУдалить
  2. Спасибо за комментарий, перефразировал текст для большей ясности.

    ОтветитьУдалить
  3. Интересная статья, поясните пожалуйста, почему уменьшение количества vCPU с 4 до 2, привело к увеличению производительности?
    На сколько я понимаю, ядра физического процессора, в данной ситуации не выделены конкретной ВМ, значит и оставшиеся 2 vCPU могут делить с кем то ресурс, что может привести к увеличению CPU Ready

    ОтветитьУдалить
  4. Планировщику ресурсов необходимо выделить 4 ядра одновременно (сервер тоже 4-ёх ядерный), что может быть сложно в случае большого количества ВМ с разным количеством ЦПУ.

    ОтветитьУдалить
  5. Анонимный, возможно вам поможет углубиться в мир планировщика процессора вот эта ссылка: http://blog.vadmin.ru/search/label/CPU

    ОтветитьУдалить
    Ответы
    1. что вы имеете ввиду?

      Удалить
    2. У Вас будет возможность прочитать материалы в блоге, касающиеся процессорной мощности и управлением ею.

      Удалить
  6. правильно ли я вас понимаю, что лучше выдать 2 ядра и они будут использоваться на 50% каждое, чем 4 ядра и они будут использоваться по 25 % каждое?

    ОтветитьУдалить
    Ответы
    1. Да, Вы правильно понимаете. А еще лучше выдать одно ядро и нагрузить его на 100%.

      Удалить
    2. спасибо, за комментарий.

      Удалить
    3. David Davis в этом документе http://www.vkernel.com/resources/whitepapers/vcpu-sizing-considerations?src=blog на 12 странице рекомендует
      "If the average is greater than 75%, and the peak is above 90%, then you should consider adding vCPU’s."

      Удалить
    4. Читаем внимательно - если *средняя* нагрузка превышает 75%, а пики входят за 90%, то следует *подумать* насчет добавить vCPU.

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

      Удалить
    5. Да, если однопоточное приложение, да на устаревшей ОС, то смысла может и нет. Все зависит от ситуации.
      У нас в в.инфраструктуре несколько человек с адм.правами. И часто наблюдаю забавную картину, что новой ВМ сразу, по дефолту, иногда дают 4, а то и 6 vCPU. Аргумент: у нас еще только в среднем 40% общей процессорной мощности на сервере задействовано. Что тебе, жалко? :-) Сколько раз объяснял, что не будет ВМ лучше работать от этого, только хуже. Идти нужно с меньшего. Вроде понимают, а потом опять вижу 4vCPU со средней загрузкой 10-15%. Приходится в нерабочее время выключать и переконфигурировать.

      Удалить
    6. Именно. Мощность надо выдавать не "тебе чо, жалко", а по минимуму. И только потом наращивать.

      Одна из проблем производительности на NUMA может быть связана как раз с неадекватным выделением ресурсов. http://blog.vadmin.ru/2010/05/numa.html

      Удалить
  7. Этот комментарий был удален автором.

    ОтветитьУдалить