PDiskLogLoad

Все VDisk, размещенные на некотором PDisk, пишут данные о своей работе в общий лог PDisk. VDisk постепенно удаляют свои устаревшие данные в начале лога для освобождения места на диске. В некоторых случаях между окончанием записи одного VDisk и началом записи другого может образоваться участок, содержащий ненужные устаревшие данные. Такие данные автоматически удаляются. Корректность этой операции тестирует актор PDiskLogLoad.

SizeInterval
VDisk1
SizeInterv...
BurstSize VDisk1
BurstSize VDisk1
BurstInterval
VDisk1
BurstInter...
StorageDuration VDisk1
StorageDuration VDisk1
SizeInterval
VDisk2
SizeInterv...
BurstInterval
VDisk2
BurstInter...
StorageDuration VDisk2
StorageDuration VDisk2
BurstSize VDisk2
BurstSize VDisk2
Data that is being deleted
Data that is being dele...
Timeline,
bytes
Timeline,...
Text is not SVG - cannot display

Примечание

Это узкоспециализированный актор для тестирования конкретной функциональности. Не является нагружающим, его назначение — проверка корректности работы.

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

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

Параметр Описание
PDiskId Идентификатор нагружаемого PDisk на узле.
PDiskGuid Глобально-уникальный идентификатор нагружаемого PDisk.
VDiskId Параметры VDisk, от имени которого подается нагрузка.
  • GroupID — идентификатор группы.
  • GroupGeneration — поколение группы.
  • Ring — идентификатор кольца в группе.
  • Domain — идентификатор фэйл-домена в кольце.
  • VDisk — индекс VDisk в фэйл-домене.
MaxInFlight Количество одновременно обрабатываемых запросов.
SizeIntervalMin Минимальный размер записи в лог в байтах.
SizeIntervalMax Максимальный размер записи в лог в байтах.
BurstInterval Интервал между сеансами записи в лог в байтах.
BurstSize Общее количество данных, которое будет записано в одном сеансе, в байтах.
StorageDuration Виртуальное время в байтах. Показывает, как долго VDisk должен хранить свои данные в логе.
IsWardenlessTest Если PDiskReadLoad запускается на кластере, укажите false. Иначе (например, при запуске в юнит-тестах) укажите true.

Примеры

Следующий актор имитирует работу двух VDisk. Первый VDisk через каждые 65536 байт записывает в лог сообщение размером 65536 байт, удаляет данные свыше 1048576 байт. Второй через каждые 2147483647 байт записывает 1024 байт сообщениями по 128 байт, удаляет данные свыше 2147483647 байт.

PDiskLogLoad: {
    Tag: 1
    PDiskId: 1
    PDiskGuid: 12345
    DurationSeconds: 60
    Workers: {
        VDiskId: {GroupID: 1 GroupGeneration: 5 Ring: 1 Domain: 1 VDisk: 1}
        MaxInFlight: 1
        SizeIntervalMin: 65536
        SizeIntervalMax: 65536
        BurstInterval: 65536
        BurstSize: 65536
        StorageDuration: 1048576
    }
    Workers: {
        VDiskId: {GroupID: 2 GroupGeneration: 5 Ring: 1 Domain: 1 VDisk: 1}
        MaxInFlight: 1
        SizeIntervalMin: 128
        SizeIntervalMax: 128
        BurstInterval: 2147483647
        BurstSize: 1024
        StorageDuration: 2147483647
    }
    IsWardenlessTest: false
}

Тест завершился успешно, если в течение проверки все узлы кластера работали без перезагрузок и тестируемый PDisk имел состояние Normal. Убедиться в этом можно c помощью Embedded UI кластера.

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