Расчет производительности чтения и записи в apache cassandra

Я хотел бы отслеживать и рассчитывать производительность READ и WRITE в Apache Cassandra (клиент - cqlsh). Я знаю, что TRACING ON доступен, но я не нашел много полезного.

Я ожидаю отслеживать следующие примеры в Cassandra (Примеры),

I have 3 node Cassandra cluster and I have a table with 1 million entry, I would like to calculate the performance of READ / WRITE in the following way,

1) WRITE - 1 INSERT with 1 million entry available in it.
2) WRITE - 1 UPSERT on one of the entry with 1 million entry available in it.
3) READ - 1 READ from 1 million entry 
4) READ - ALL THE 1 million entry

which involves single partition and multiple partition too. 

Любая помощь в отслеживании производительности приветствуется.


person Harry    schedule 13.12.2017    source источник


Ответы (1)


Статистику производительности для определенного пространства ключей/таблицы можно получить с помощью команды nodetool tablehistograms (как описано в документации).

Для создания нагрузки на таблицы вы можете использовать инструмент cassandra-stress, который поставляется вместе с Cassandra. Он довольно мощный, но требует написания правильного конфигурационного файла, имитирующего ваши таблицы. Этот сообщение в блоге весьма полезен вместе с официальной документацией.

person Alex Ott    schedule 13.12.2017
comment
что означают следующие два комментария? В документе не так много информации, как и в этой ссылке stackoverflow.com/questions/34688069/ - person Harry; 13.12.2017
comment
Заголовки гистограмм таблицы: Процентиль SSTables Задержка записи Задержка чтения Размер раздела Количество ячеек - person Harry; 13.12.2017
comment
Его значение: 99% 1,00 263,21 263,21 2299 310 - person Harry; 13.12.2017
comment
Первое значение — это процентиль — это означает, что 99% транзакций имеют этот номер. 2-й - количество файлов SSTable, 3-й - максимальная задержка записи для этого процентиля составляет 264 микросекунды, 4-й - задержка чтения (странно, что у вас оба с одинаковым значением), 5-й - размер одного раздела в байтах, и последний - число ячеек (отдельных значений) внутри этого раздела - поскольку у вас есть время в качестве ключа кластеризации, раздел включает несколько строк - person Alex Ott; 13.12.2017
comment
Означает ли это, что 3-й - максимальная задержка записи для этого процентиля составляет 264 микросекунды - 99% моего запроса заняло максимум 264 микросекунды? на 4 тоже самое? Если можно, поясните, пожалуйста, 3-й и 4-й пункты более четко. - person Harry; 13.12.2017
comment
Также у меня есть 800 записей в этой таблице. Почему количество ячеек равно 310? - person Harry; 13.12.2017
comment
Чтобы дать вам информацию, SSTable Dump: ячейки: [{имя: flashmode, значение: да}, {имя: Physicalusage, значение: 38}, {имя: readbw, значение: 29}, {имя: readiops, значение: 12} , {имя: totalcapacity, значение: 20}, {имя: writebw, значение: 28}, {имя: writeiops, значение: 81}, {имя: writelatency, значение: 4}] - person Harry; 13.12.2017
comment
310 - количество ячеек в отдельных разделах - в некоторых разделах может быть больше данных, в некоторых меньше. Что касается задержки - да, это правильно - максимальное время для 99% ваших запросов на чтение или запись составляет ~ 264 микросекунды. Но я считаю, что эти данные не очень отражают реальную производительность. - person Alex Ott; 13.12.2017
comment
Еще один кусок пирога для вашего брата: stackoverflow.com/questions/47793714/ - person Harry; 13.12.2017
comment
Мне так любопытно, как распределяются данные внутри одного раздела. Не могли бы вы помочь мне в этом, пожалуйста stackoverflow.com/questions/47793714/ - person Harry; 13.12.2017