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

# KqpLoad

Тестирует производительности кластера YDB в целом, нагружая все компоненты через слой Query Processor. Нагрузка, аналогична нагрузке от подкоманды [workload](https://ydb.tech/docs/ru/reference/ydb-cli/commands/workload/index.md?version=v25.3) YDB CLI, но запускается изнутри кластера.

Вы можете запустить два вида нагрузки:

* **Stock** — симулирует работу склада интернет-магазина: создает заказы из нескольких товаров, получает список заказов по клиенту.
* **Key-value** — использует БД как key-value хранилище.

Перед началом работы создаются необходимые таблицы, после завершения они удаляются.

## Параметры актора {#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 -->

| Параметр                 | Описание                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|--------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `DurationSeconds`        | Продолжительность нагрузки в секундах.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `WindowDuration`         | Размер окна для агрегации статистики.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `WorkingDir`             | Путь директории, в которой будут созданы тестовые таблицы.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `NumOfSessions`          | Количество параллельных потоков, подающих нагрузку. Каждый поток пишет в свою сессию.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `DeleteTableOnFinish`    | Если  `False`, то созданные таблицы не удаляются после завершения работы нагрузки. Может быть полезно в случае, когда при первом запуске актора создается большая таблица, а при последующих выполняются запросы к ней.                                                                                                                                                                                                                                                                                                                                                                             |
| `UniformPartitionsCount` | Количество партиций, создаваемых в тестовых таблицах.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `WorkloadType`           | Тип нагрузки.<br/>В случае Stoсk:<ul><li>`0` — InsertRandomOrder;</li><li>`1` — SubmitRandomOrder;</li><li>`2` — SubmitSameOrder;</li><li>`3` — GetRandomCustomerHistory;</li><li>`4` — GetCustomerHistory.</li></ul>В случае Key-Value:<ul><li>`0` — UpsertRandom;</li><li>`1` — InsertRandom;</li><li>`2` — SelectRandom.</li></ul>                                                                                                                                                                                                                                                               |
| `Workload`               | Вид нагрузки.<br/>`Stock`:<ul><li>`ProductCount` — количество видов товаров.</li><li>`Quantity` — количество товаров каждого вида на складе.</li><li>`OrderCount` — первоначальное количество заказов в БД.</li><li>`Limit` — минимальное количество шардов для таблиц.</li></ul>`Kv`:<ul><li>`InitRowCount` — до начала нагрузки нагружающий актор запишет в таблицу указанное количество строк.</li><li>`StringLen` — длина строки `value`.</li><li>`ColumnsCnt` — сколько столбцов использовать в таблице.</li><li>`RowsCnt` — сколько строк вставлять или читать в одном SQL запросе.</li></ul> |

## Примеры {#example}

Следующий актор запускает stock-нагрузку БД `/slice/db`, выполняя простые UPSERT-запросы в `64` потока в течение `30` секунд.

```proto
KqpLoad: {
    DurationSeconds: 30
    WindowDuration: 1
    WorkingDir: "/slice/db"
    NumOfSessions: 64
    UniformPartitionsCount: 1000
    DeleteTableOnFinish: 1
    WorkloadType: 0
    Stock: {
        ProductCount: 100
        Quantity: 1000
        OrderCount: 100
        Limit: 10
    }
}
```

Результатом теста является количество успешных транзакций в секунду, количество повторных попыток исполнения транзакций и количество ошибок.
