Увеличение количества виртуальных машин снижает пропускную способность Cassandra. В чем может быть причина?

Я использую инструмент тестирования YCSB для тестирования кластера Cassandra. Я меняю количество виртуальных машин в кластере. Я использую 1 физический хост и 1,2,3,4 виртуальных машин для тестирования (как показано на прилагаемом рисунке).

Сгенерированная рабочая нагрузка все время одинакова Рабочая нагрузка C 10 000,00 операций, 10 000 записей Каждая виртуальная машина имеет 2 ГБ ОЗУ, 20 ГБ диск

Кассандра - 1 начальный узел, endpoint_snitch - gossipproperty Keyspace YCSB - фактор репликации 3,

Проблема в том, что при увеличении количества виртуальных машин в кластере пропускная способность снижается. В чем может быть причина?

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

Пропускная способность, наблюдаемая по разному количеству виртуальных машин в кластере Cassandra: Пропускная способность, наблюдаемая по разному количеству виртуальных машин в кластере cassandra


person Pushpendra    schedule 23.01.2016    source источник
comment
Как не тестировать C * - datastax.com/dev/ blog / how-not-to-benchmark-cassandra   -  person RussS    schedule 25.01.2016


Ответы (2)


Скорее всего, вы столкнетесь с узким местом ввода-вывода диска. Это вполне ожидаемо, особенно с дисками без ssd. Если у вас нет выделенного диска / процессора на виртуальную машину, конкуренция за ресурсы вызовет подобную конкуренцию. Также 2 ГБ на виртуальную машину недостаточно для проведения какого-либо теста производительности с помощью Cassandra, поскольку минимальный рекомендуемый размер кучи JVM составляет 8 ГБ.

person Chris Lohfink    schedule 24.01.2016

Cassandra отлично справляется с горизонтальным масштабированием (почти линейным), но это не означает, что простое добавление виртуальных машин к одному физическому хосту увеличит пропускную способность - одна виртуальная машина на физическом хосте будет иметь меньше конфликтов за ресурсы (диск, процессор, память, сеть ), чем 4, поэтому вполне вероятно, что одна виртуальная машина будет работать лучше, чем 4.

По определению, если вы БЫЛИ увеличивали ресурсы, вы ДОЛЖНЫ увидеть, как он работает лучше, но это не так, вы просто добавляете конкуренцию к существующим ресурсам. Если вы хотите масштабировать Cassandra, вам необходимо протестировать ее с дополнительными физическими ресурсами - с большим количеством физических машин, а не с виртуальными машинами на одной машине.

Наконец, как упоминает Крис Лохфинк, ваши виртуальные машины слишком малы для проведения значимых тестов - рекомендуется 8 ГБ кучи JVM и еще 8 ГБ кэша страниц vm для поддержки чтения - запуск Cassandra с менее чем 16 ГБ ОЗУ обычно не идеален в производстве.

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

person Jeff Jirsa    schedule 24.01.2016