3.12.5.1.8.2. Proc
В данном разделе публикуется состояние процессов работы базы данных и статистика по ним:
|
Папка
|
Описание
|
|
TxWrite
|
Запись в журнал транзакций
|
|
Insert
|
Обработка журнала и вставка в InMem-фрагменты
|
|
Index
|
Индексация InMem-фрагментов
|
|
Flush
|
Сохранение на диск
|
|
Merge
|
Слияние фрагментов данных на диске
|
|
Cleanup
|
Очистка
|
|
Read
|
Чтение
|
|
TxCut
|
Отсечение начала журнала транзакций и сокращение размера
|
Статистика по производительности и нагрузке
В разделах TxWrite, Insert, Index, Flush, Merge и Read публикуется следующая статистика:
|
Папка
|
Описание
|
|
Load
|
Показатели нагрузки
|
|
Perf
|
Показатели производительности
|
Нагрузка - суммарный объём обработки данных, выполняемый процессом за отчётный период.
Производительность - средняя скорость выполнения отдельных операций обработки за отчётный период.
В обоих подразделах публикуются текущий (RPS_Current) и максимальный (RPS_Max) показатель (со времени запуска базы данных).
Показатели нагрузки и производительности для TxWrite, Insert, Flush и Merge
Операции TxWrite выполняются потоками обработки клиентских запросов, но они являются взаимоисключающими: добавление записей в журнал в каждый момент времени может выполнять только один поток.
Процессы Insert, Flush и Merge выполняются выделенными одиночными фоновыми потоками.
Для этих процессов характерна следующая связь между нагрузкой и производительностью:
Когда нагрузка невелика, и в работе процесса имеются простои, показатель текущей нагрузки будет ниже показателя текущей производительности.
Во время полной нагрузки, когда простоев в работе процесса нет, текущая нагрузка будет находиться примерно на уровне текущей производительности.
Показатели нагрузки и производительности для Index и Read
Операции чтения Read выполняются параллельно потоками обработки клиентских запросов и упреждающего чтения.
Операции индексации Index выполняются параллельно несколькими фоновыми потоками внутри базы данных (параметр data/write/commit_threads).
Для этих процессов характерно следующее:
Нагрузка показывает совокупный объём работы, проделанной потоками за отчётный период, в пересчёте на 1 с
Производительность показывает среднюю скорость выполнения отдельных операций
Если за отчётный период операции выполнялись параллельно, и не было простоев в работе, текущий показатель нагрузки будет превышать показатель текущей производительности.
Состояние процесса
Разделы Insert, Flush, Merge, Cleanup и TxCut соответствуют критически важным фоновым процессам, взаимодействующих с диском. В них публикуется информация о состоянии этих процессов:
|
Параметр
|
Описание
|
|
State
|
Текущее состояние. Коды состояния:
-1 – сбой: последние итерации выполнения завершились с ошибками в 100% случаев;
0 – выполнение отключено (перед запуском);
1 – выполнение с периодическими сбоями;
2 – Выполнение без сбоев. Данное состояние означает, что обработчик находится в нормальном состоянии: либо ожидает очередную задачу, либо выполняет. Активность следует оценивать по текущим показателям производительности.
|
|
NumTotalFailures
|
Число ошибок с момента запуска
|
|
NumLastFailures
|
Число ошибок с момента последней контрольной точки
|
|
LastFailureTimestamp
|
Метка времени последней ошибки
|
|
LastFailure
|
Описание последней ошибки
|
В случае сбоя при очередной попытке выполнения:
Увеличивается счётчик NumLastFailures
Если код текущего состояния равен 2, то выставляется код состояния 1
Выдерживается пауза ~2 секунды перед следующей попыткой
Не чаще 1 раза в 10 секунд выполняется контрольная точка:
По количеству ошибок, случившихся с момента последней контрольной точки, выставляется итоговое состояние:
Если 100% попыток завершились с ошибками, то выставляется код состояние -1
Если ошибки были, но были и успешные попытки, то выставляется код состояние 1
Если ошибок не было, то выставляется код состояние 2
Счётчик NumLastFailures сбрасывается в 0
Read - дополнительные параметры
В разделе Read дополнительно публикуется параметр PrefetchRatio - доля механизма асинхронного выполнения запросов, реализованного на уровне Сервера.
Диапазон возможных значений: [0.0, 1.0].
Чем значение ближе к 1.0, тем лучше, поскольку это означает, что пока клиенту передаётся очередная порция результата, успевает подготавливаться следующая.
|
