---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://ydb.tech/docs/en/contributor/load-actors-vdisk.md
  - https://ydb.tech/docs/ru/contributor/load-actors-vdisk.md
  - href: ru/contributor/load-actors-vdisk.md
    type: text/markdown
    title: Markdown version
  - href: ../llms.txt
    type: text/markdown
    title: llms.txt
sourcePath: ru/core/contributor/load-actors-vdisk.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ydb.tech/docs/ru/llms.txt

# VDiskLoad

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

## Параметры актора {#options}

<!-- source: ru/_includes/load-actors-params.md -->
Ниже описаны основные параметры актора. Полный список параметров смотрите в файле [load_test.proto](https://github.com/ydb-platform/ydb/blob/main/ydb/core/protos/load_test.proto) Git-репозитория YDB.
<!-- endsource: ru/_includes/load-actors-params.md -->

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

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

<!-- source: ru/_includes/load-actors-interval.md -->
Интервал, записанный в виде repeated-поля `TIntervalInfo`, вычисляется по следующему алгоритму:

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

Аналогичный механизм применяется и для вероятностного распределения размеров записываемых данных, за исключением того, что в том механизме есть только равновероятное распределение размера `[Min, Max]`.
<!-- endsource: ru/_includes/load-actors-interval.md -->

<!-- source: ru/contributor/_includes/career.md -->
{% note tip "Хотите присоединиться к команде разработки YDB?" %}

Ознакомьтесь с разделами о [команде YDB и открытых вакансиях](https://ydb.tech/ru/careers/), а также о [возможностях для студентов](https://ydb.tech/ru/students/).

{% endnote %}
<!-- endsource: ru/contributor/_includes/career.md -->