Понимание информации о ходе выполнения и статистических отчетов

В этом документе подробно объясняется информация о ходе выполнения, отображаемая во время работы MatrixBench, а также статистические отчеты, выводимые по завершении.

Примечание!
mxbench теперь является проектом с открытым исходным кодом. Приветствуются проверка кода и вклад в разработку. Подробности см. в README.

1 Информация о ходе выполнения

Пример:

● Stdin Writer Report
  ● period start: 2022-04-29 10:08:11, end: 2022-04-29 10:08:16, period: 5.000129734s

  ● count written in total: 637025 rows/ 1500000 rows 42%, 637025 rows in this period

  ● size written in total: 160878718 bytes/ 360000003 bytes 44%, 160878718 bytes in this period

  ● size written to MxGate in total: 350075440 bytes, 350075440 bytes in this period

● Telematics Benchmark Report
  ● stats for query SINGLE_TAG_LATEST_QUERY with parallel 8: progress: 100%

  ● stats for query MULTI_TAG_LATEST_QUERY with parallel 8: progress: 43%

Информация о ходе выполнения состоит из двух частей: Writer (запись) и Benchmark (тестирование).

1.1 Writer

  • period start, period end, period: Время начала, окончания и продолжительность текущего интервала отчетности.
  • count written: Общее количество записанных строк по сравнению с ожидаемым общим количеством строк, а также процент выполнения. «xx in this period» указывает количество строк, записанных в течение этого интервала.
  • size written: Общее количество записанных байтов по сравнению с ожидаемым объемом данных, а также процент выполнения. «xx in this period» указывает объем данных в байтах, записанный за этот интервал.
  • size written to MxGate: Общее количество байтов, отправленных в MatrixGate после преобразования данных в текстовый формат. «xx in this period» указывает объем данных в байтах, отправленных в MatrixGate в течение этого интервала.

1.2 Benchmark

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

2 Статистические отчеты

2.1 Writer

┌───────────────────────────────────────────────────────┐
│            Summary Report for Stdin Writer            │
├─────────────────────────────────┬─────────────────────┤
│ start time:                     │ 2022-04-27 13:29:01 │
├─────────────────────────────────┼─────────────────────┤
│ stop time:                      │ 2022-04-27 13:29:58 │
├─────────────────────────────────┼─────────────────────┤
│ size written to MxGate (bytes): │ 848333400           │
├─────────────────────────────────┼─────────────────────┤
│ lines inserted:                 │ 1500000             │
├─────────────────────────────────┼─────────────────────┤
│ compress ratio:                 │ 1.561276 : 1        │
└─────────────────────────────────┴─────────────────────┘
  • start time: Время начала загрузки данных.
  • stop time: Время окончания загрузки данных.
  • size written to MxGate (bytes): Общее количество байтов, записанных в MatrixGate.
  • lines inserted: Количество вставленных записей данных. Из-за операций UPSERT это число может превышать фактическое количество строк в базе данных.
  • compress ratio: Коэффициент сжатия — отношение объема данных, записанных в MatrixGate, к фактическому размеру таблицы на диске в базе данных.

2.2 Benchmark

Для каждого запроса при каждом значении параметра parallel выводится отчет в реальном времени.

┌─────────────────┬───────────────┐
│ Overall Latency │ 29.948370582s │
│ Average Latency │   13.723304ms │
│ P75 Latency     │    14.35972ms │
│ P50 Latency     │   13.654556ms │
│ P25 Latency     │   12.925912ms │
│ TPS             │           582 │
└─────────────────┴───────────────┘
  • Pxx: Задержка на xx-м перцентиле. Например, P75 = 14.35972 мс означает, что 75 % выполнений запроса завершились быстрее этого значения, а 25 % были медленнее. P50 соответствует медианной задержке.
  • TPS: Транзакций в секунду — среднее количество запросов, выполняемых за одну секунду.

Сводный отчет:

┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                                Summary Report for Telematics Benchmark                                                │
├─────────────────────┬─────────────────────────────────────┬─────────────────────────────────────┬─────────────────────────────────────┤
│ Parallel\Query Name │ SINGLE_TAG_LATEST_QUERY             │ MULTI_TAG_LATEST_QUERY              │ SINGLE_TAG_DETAIL_QUERY             │
├─────────────────────┼─────────────────────────────────────┼─────────────────────────────────────┼─────────────────────────────────────┤
│ 8                   │ ┌─────────────────┬───────────────┐ │ ┌─────────────────┬───────────────┐ │ ┌─────────────────┬───────────────┐ │
│                     │ │ Overall Latency │ 30.008625133s │ │ │ Overall Latency │ 36.407016561s │ │ │ Overall Latency │ 29.948370582s │ │
│                     │ │ Average Latency │    23.81758ms │ │ │ Average Latency │  7.270212105s │ │ │ Average Latency │   13.723304ms │ │
│                     │ │ P75 Latency     │   24.911171ms │ │ │ P75 Latency     │  8.139682559s │ │ │ P75 Latency     │    14.35972ms │ │
│                     │ │ P50 Latency     │   23.411248ms │ │ │ P50 Latency     │  7.161237157s │ │ │ P50 Latency     │   13.654556ms │ │
│                     │ │ P25 Latency     │   20.899622ms │ │ │ P25 Latency     │  6.642459805s │ │ │ P25 Latency     │   12.925912ms │ │
│                     │ │ TPS             │           335 │ │ │ TPS             │             1 │ │ │ TPS             │           582 │ │
│                     │ └─────────────────┴───────────────┘ │ └─────────────────┴───────────────┘ │ └─────────────────┴───────────────┘ │
│                     │ progress: 100%                      │ progress: 100%                      │ progress: 100%                      │
└─────────────────────┴─────────────────────────────────────┴─────────────────────────────────────┴─────────────────────────────────────┘
  • Каждая строка представляет результаты для определенного уровня параллелизма запросов.
  • Каждый столбец представляет метрики производительности конкретного запроса при различных уровнях параллелизма.
  • Если набор запросов выполняется в нескольких циклах (например, смешанная нагрузка, когда запросы продолжаются во время загрузки данных), отображаются только результаты последнего цикла.
  • Если запрос завершился с ошибкой или его выполнение было прервано пользователем, индикатор хода выполнения показывает текущий статус, а статистика основана только на успешно завершенных запросах.

Примечание!
Для быстрого старта с MatrixBench см. Краткое руководство по MatrixBench. Полный список параметров командной строки см. в разделе Параметры командной строки MatrixBench. Обзор ключевых возможностей см. в разделе Ключевые особенности MatrixBench.