VDiskLoad

Подает нагрузку write-only на VDisk. Имитирует Distributed Storage Proxy. Результатом теста является производительность записи на VDisk в операциях в секунду.

Параметры актора

Ниже описаны основные параметры актора. Полный список параметров смотрите в файле load_test.proto Git-репозитория YDB.

Параметр Описание
VDiskId Параметры VDisk, от имени которого подается нагрузка.
  • GroupID — идентификатор группы.
  • GroupGeneration — поколение группы.
  • Ring — идентификатор кольца в группе.
  • Domain — идентификатор фэйл-домена в кольце.
  • VDisk — индекс VDisk в фэйл-домене.
GroupInfo Описание группы, в которую входит нагружаемый VDisk (в корректном поколении).
TabletId Идентификатор таблетки, от имени которой подается нагрузка. Должен быть уникальным для каждого нагружающего актора.
Channel Номер канала внутри таблетки, который будет указан в командах записи блобов и сборки мусора.
DurationSeconds Полная длительность теста в секундах, по достижению которой нагрузка автоматически прекращается.
WriteIntervals Описание параметров вероятностного распределения временных интервалов между записями.
WriteSizes Размер записываемых данных. Для каждого запроса выбирается случайным образом из интервала Min-Max. Вы можете задать несколько диапазонов WriteSizes, и тогда выбор значения из конкретного диапазона будет определяться его Weight.
InFlightPutsMax Максимальное количество одновременно выполняемых запросов на запись блоба в VDisk (TEvVPut-запросы); если не указан, то число запросов не ограничивается.
InFlightPutBytesMax Максимальное количество байт в одновременно выполняемых запросах на запись блоба в VDisk (TEvVPut-запросы).
PutHandleClass Класс записи данных в дисковую подсистему. В случае TabletLog запись выполняется с максимальным приоритетом.
BarrierAdvanceIntervals Описание параметров вероятностного распределения интервалов между передвижением барьера сборки мусора и шага записи.
StepDistance Расстояние между текущим записываемым шагом Gen:Step блоба и собираемым. Чем больше эта величина, тем больше данных хранится. Запись происходит с Step = X, удаление — всех блобов со Step = X - StepDistance. При этом периодически (с периодом BarrierAdvanceIntervals) Step увеличивается на единицу.

Параметры вероятностного распределения

Интервал, записанный в виде repeated-поля TIntervalInfo, вычисляется по следующему алгоритму:

  • случайным образом выбирается элемент из массива TIntervalInfo с вероятностью, пропорциональной весу;
  • для элемента типа TIntervalUniform равновероятно выбирается значение в интервале Min-Max (если указано MinMs/MaxMs, то значение в миллисекундах; если MinUs/MaxUs — в микросекундах);
  • для элемента типа TIntervalPoisson выбирается интервал по формуле Min(log(-x / Frequency), MaxIntervalMs), где x — случайное значение в интервале [0, 1], что обеспечивает соответствие интервалов распределению Пуассона с частотой Frequency, но с интервалом не больше MaxIntervalMs.

Аналогичный механизм применяется и для вероятностного распределения размеров записываемых данных, за исключением того, что в том механизме есть только равновероятное распределение размера [Min, Max].

Предыдущая
Следующая