Кластер H2O неравномерное распределение производительности использования

Я настроил кластер с 4-ядерным (2 ГГц) и 16-ядерным (1,8 ГГц) виртуальным компьютером. Создание и подключение к кластеру работает без проблем. Но теперь я хочу провести глубокое изучение кластера, где я вижу неравномерное распределение для использования производительности этих двух виртуальных машин. Процессор с 4 ядрами всегда загружен на 100%, тогда как 16-ядерный компьютер большую часть времени простаивает.

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

С наилучшими пожеланиями, Маркус

1 ответ

Решение

Здесь нужно помнить две вещи.

  1. Ваши данные должны быть достаточно большими, чтобы использовать преимущества параллелизма данных. В частности, количество блоков в столбце должно быть достаточно большим, чтобы все ядра могли работать. Смотрите этот ответ для более подробной информации: H2O не работает параллельно

  2. H2O-3 предполагает, что ваши узлы симметричны. Он не пытается распределить нагрузку между кластерами в зависимости от возможностей узлов. Более быстрые узлы сначала завершат свою работу и будут ждать в режиме ожидания, пока медленные узлы не догонят. (Вы можете увидеть этот же эффект, если у вас есть два симметричных узла, но один из них занят выполнением другого процесса.)

Асимметрия является более серьезной проблемой для памяти (где меньшие узлы могут исчерпать память и полностью перестать работать), чем для CPU (где некоторые узлы просто ждут). Поэтому всегда обязательно запускайте каждый узел H2O с одинаковым значением -Xmx,

Вы можете ограничить количество ядер, которые H2O использует с помощью -nthreads вариант. Таким образом, вы можете попробовать дать каждому из ваших двух узлов -nthreads 4 и посмотрим, ведут ли они себя более симметрично с каждым, используя примерно четыре ядра. В описываемом вами случае это будет означать, что машина меньшего размера используется примерно на 100%, а машина большего размера - примерно 25%. (Но так как две машины, вероятно, имеют разные чипы, ядра, вероятно, не идентичны и не будут идеально сбалансированы, что нормально.)

[Я полностью игнорирую аспект виртуализации, но в зависимости от конфигурации вашего гипервизора могут также появиться общие ресурсы процессора.]

Другие вопросы по тегам