Отслеживание времени в Кассандре - правильный выбор для отслеживания времени, проведенного в Кассандре

Когда я пытаюсь выполнить запрос для 500000 записей в таблице, я мог видеть, что он завершается за 1200 мс, но когда я пытаюсь выполнить запрос с включенной TRACING ON, я вижу, что он показывает долгое время в журнале трассировки скажем, 1850 мс.

Итак, я хотел бы подтвердить, является ли функция TRACING ON в Cassandra правильным выбором для отслеживания времени, затрачиваемого на выполнение запросов?


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


Ответы (2)


Существуют метрики, которые дадут вам количество времени, потраченного на запросы, вы можете легко просмотреть их с помощью nodetool proxyhistograms (doc) или получить прямо из JMX. TRACING ON предназначен для отладки, почему медленный запрос. Важно отметить, что это очень дорого (и, возможно, увеличивает время на запрос, хотя большая часть трассировки является асинхронной), и ее следует избегать, не считая проблем отладки.

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

person Chris Lohfink    schedule 19.12.2017
comment
Правильная ли функция Tracing On для отслеживания времени выполнения запроса? Он предоставляет время выполнения. Мой вопрос: подходит ли это утилита для отслеживания времени, затрачиваемого на выполнение запроса? - person Harry; 21.12.2017
comment
Я заметил, что он показывает большее время выполнения, чем фактически занимает запрос без отслеживания. - person Harry; 21.12.2017
comment
что является правильным решением для отслеживания времени выполнения запроса в Cassandra - person Harry; 21.12.2017
comment
он работает, чтобы отслеживать время одного запроса, введенного вручную, но время от времени оно будет отличаться. - person Chris Lohfink; 21.12.2017
comment
Итак, @chris Не могли бы вы сообщить мне, как правильно отслеживать время выполнения запроса в Cassandra? - person Harry; 26.12.2017
comment
nodetool proxyhistogram или используйте инструмент jmx, чтобы получить метрики и агрегировать их. - person Chris Lohfink; 27.12.2017
comment
прокси-гистограммы дают среднюю задержку записи, верно? Мне нужен конкретный запрос. @Крис - person Harry; 27.12.2017
comment
если вы хотите увидеть, что происходит в конкретном запросе (один раз), тогда TRACING ON будет работать. Это больше для отладки того, почему конкретный запрос медленный, чем для определения его скорости, потому что это невероятно дорого, и один запрос не будет хорошим примером того, как он будет работать. прокси-гистограммы будут давать больше, чем просто среднее, это гистограмма всех запросов, поэтому вы можете получить мин. / макс. / 99-й процентиль (99-й, вероятно, не важен) и т.д. query вы можете увидеть процентили для нескольких запросов. - person Chris Lohfink; 27.12.2017
comment
Спасибо, @Chris, я принял твой ответ. Не могли бы вы проверить это: stackoverflow.com/questions/47977824/ - person Harry; 27.12.2017
comment
stackoverflow.com/questions/48018288/ Не могли бы вы сообщить мне об этом, пожалуйста? - person Harry; 29.12.2017
comment
вам не нужно связывать другие вопросы в несвязанных ответах, есть люди, которые смотрят теги и будут отвечать. - person Chris Lohfink; 29.12.2017

Согласно документации https://docs.datastax.com/en/cql/3.3/cql/cql_reference/cqlshTracing.html

Включает и отключает трассировку транзакций на всех узлах кластера. Используйте трассировку для устранения проблем с производительностью. Подробная информация о транзакциях, относящаяся к внутренним операциям Cassandra, фиксируется в пространстве ключей system_traces. Когда запрос выполняется, идентификатор сеанса отображается в результатах запроса, а запись с подробными сведениями высокого уровня, такими как идентификатор сеанса и клиент, а также длина сеанса, записывается в таблицу system_traces.session.

Поэтому его следует использовать для устранения неполадок и, следовательно, измерения затраченного времени.

Информация трассировки состоит из действия, отметки времени, в которую произошло действие, источника действия и времени, прошедшего с начала запроса (source_elapsed). source_elapsed находится в микросекундах.

person Alex M981    schedule 19.12.2017