aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbazeltsev <bazeltsev@ydb.tech>2022-12-01 17:57:53 +0300
committerbazeltsev <bazeltsev@ydb.tech>2022-12-01 17:57:53 +0300
commit249d470f713fe51ed84eed444aae8a29157a426e (patch)
tree5a7b75eb7493bf78daed819d8e9edf0a09c76540
parent91d3e1feb4f1a7648f4eedfd2eb1f113b222501f (diff)
downloadydb-249d470f713fe51ed84eed444aae8a29157a426e.tar.gz
Load actors tail
updated
-rw-r--r--ydb/docs/ru/core/_includes/addition.md5
-rw-r--r--ydb/docs/ru/core/development/key-value-load-start.md8
-rw-r--r--ydb/docs/ru/core/development/kqp-load-start.md124
-rw-r--r--ydb/docs/ru/core/development/load-start.md94
-rw-r--r--ydb/docs/ru/core/development/load-stop.md32
-rw-r--r--ydb/docs/ru/core/development/memory-load-start.md26
-rw-r--r--ydb/docs/ru/core/development/pdisk-load-start.md44
-rw-r--r--ydb/docs/ru/core/development/pdisk-log-load-start.md47
-rw-r--r--ydb/docs/ru/core/development/pdisk-read-load-start.md8
-rw-r--r--ydb/docs/ru/core/development/testing-load-actor.md38
-rw-r--r--ydb/docs/ru/core/development/vdisk-load-start.md9
-rw-r--r--ydb/docs/ru/core/toc_i.yaml4
12 files changed, 281 insertions, 158 deletions
diff --git a/ydb/docs/ru/core/_includes/addition.md b/ydb/docs/ru/core/_includes/addition.md
new file mode 100644
index 00000000000..68bb03e30bb
--- /dev/null
+++ b/ydb/docs/ru/core/_includes/addition.md
@@ -0,0 +1,5 @@
+{% note info %}
+
+Материал статьи дополняется.
+
+{% endnote %}
diff --git a/ydb/docs/ru/core/development/key-value-load-start.md b/ydb/docs/ru/core/development/key-value-load-start.md
index 4d879ffbabd..94161a96f4d 100644
--- a/ydb/docs/ru/core/development/key-value-load-start.md
+++ b/ydb/docs/ru/core/development/key-value-load-start.md
@@ -1,6 +1,6 @@
-# Нагрузка для KV-таблетки
+# Key-Value нагрузка
-## Описание
+## Структура {#proto}
```proto
message TKeyValueLoadStart {
@@ -16,4 +16,6 @@ message TKeyValueLoadStart {
optional uint32 DurationSeconds = 5;
repeated TWorkerConfig Workers = 7;
}
-``` \ No newline at end of file
+```
+
+{% include notitle [addition](../_includes/addition.md) %}
diff --git a/ydb/docs/ru/core/development/kqp-load-start.md b/ydb/docs/ru/core/development/kqp-load-start.md
index 48393779c24..9ab7101d668 100644
--- a/ydb/docs/ru/core/development/kqp-load-start.md
+++ b/ydb/docs/ru/core/development/kqp-load-start.md
@@ -1,53 +1,83 @@
-# KQP нагружалка
+# KQP нагрузка
+
+## Структура {#proto}
-## Описание
```proto
- message TKqpLoadStart {
- message TStockWorkload { // ссылка на описание StockWorkload? Параметры as-is скопированны оттуда
- optional uint64 ProductCount = 1 [default = 100];
- optional uint64 Quantity = 2 [default = 1000];
- optional uint64 OrderCount = 3 [default = 100];
- optional uint64 Limit = 4 [default = 10];
- optional bool PartitionsByLoad = 5 [default = true];
- }
- message TKvWorkload {
- optional uint64 InitRowCount = 1 [default = 1000]; // необязательный. До начала нагрузки нагружающий актор запишет
- // InitRowCount строк в таблицу
- optional bool PartitionsByLoad = 2 [default = true]; // необязательный. Добавлять ли к тестовой таблице аттрибут AUTO_PARTITIONING_BY_LOAD
- optional uint64 MaxFirstKey = 3 [default = 18446744073709551615]; // необязательный. Ограничивает диапазон значений ключа.
- // Создан для того, чтобы при читающей нагрузке случайные ключи попадал в диапазон ключей таблицы
- optional uint64 StringLen = 4 [default = 8]; // необязательный. Длина строки value
- optional uint64 ColumnsCnt = 5 [default = 2]; // необязательный. Сколько столбцов использовать в таблице.
- // По умолчанию 2 - один для key, второй для value.
- optional uint64 RowsCnt = 6 [default = 1]; // необязательный. Сколько строк вставлять/читать в одном SQL запросе
- }
- optional uint64 Tag = 1; // необязательный. Если не задан, то тег будет присвоен автоматически
- optional uint32 DurationSeconds = 2; // обязательный. Длительность теста
- optional uint32 WindowDuration = 3; // обязательный. Размер окна для агрегации статистики
- optional string WorkingDir = 4; // обязательный. Путь до директории, где будут созданы тестовые таблицы
- optional uint32 NumOfSessions = 5; // обязательный. Количество параллельных потоков, подающих нагрузку. Каждый поток пишет в свою сессию
- optional bool DeleteTableOnFinish = 6; // обязательный. Удалять ли таблицы после завершения работы нагрузки. Неудаление полезно в сценарии
- // долгого предварительного создания большой таблицы и последующими (читающими) тестами.
- optional uint32 UniformPartitionsCount = 7; // обязательный. Количество партиций, создаваемых в тестовых таблицах
- optional uint32 WorkloadType = 8; // обязательный. Позволяет выбрать тип нагрузки.
- // В случае KV:
- // 0 - UpsertRandom,
- // 1 - InsertRandom,
- // 2 - SelectRandom
- // В случае Stock:
- // 0 - InsertRandomOrder,
- // 1 - SubmitRandomOrder,
- // 2 - SubmitSameOrder,
- // 3 - GetRandomCustomerHistory,
- // 4 - GetCustomerHistory
- oneof Workload {
- TStockWorkload Stock = 9;
- TKvWorkload Kv = 10;
- }
+message TKqpLoadStart {
+ message TStockWorkload {
+ optional uint64 ProductCount = 1 [default = 100];
+ optional uint64 Quantity = 2 [default = 1000];
+ optional uint64 OrderCount = 3 [default = 100];
+ optional uint64 Limit = 4 [default = 10];
+ optional bool PartitionsByLoad = 5 [default = true];
+ }
+ message TKvWorkload {
+ optional uint64 InitRowCount = 1 [default = 1000];
+ optional bool PartitionsByLoad = 2 [default = true];
+ optional uint64 MaxFirstKey = 3 [default = 18446744073709551615];
+ optional uint64 StringLen = 4 [default = 8];
+ optional uint64 ColumnsCnt = 5 [default = 2];
+ optional uint64 RowsCnt = 6 [default = 1];
}
+ optional uint64 Tag = 1;
+ optional uint32 DurationSeconds = 2;
+ optional uint32 WindowDuration = 3;
+ optional string WorkingDir = 4;
+ optional uint32 NumOfSessions = 5;
+ optional bool DeleteTableOnFinish = 6;
+ optional uint32 UniformPartitionsCount = 7;
+ optional uint32 WorkloadType = 8;
+ oneof Workload {
+ TStockWorkload Stock = 9;
+ TKvWorkload Kv = 10;
+ }
+}
```
-## Примеры
+## Параметры {#options}
+
+### TKqpLoadStart
+
+Параметр | Описание
+--- | ---
+`TStockWorkload[]` | [link](#stock-workload).
+`TKvWorkload[]` | [link](#kv-workload).
+`Tag` | Тег нагрузки. Если не задан, то тег будет присвоен автоматически.<br>Тип: `uint64`.<br>Необязательный.
+`DurationSeconds` | Длительность теста в секундах.<br>Тип: `uint32`.<br>Обязательный.
+`WindowDuration` | Размер окна для агрегации статистики.<br>Тип: `uint32`.<br>Обязательный.
+`WorkingDir` | Путь директории, в которой будут созданы тестовые таблицы.<br>Тип: `string`.<br>Обязательный.
+`NumOfSessions` | Количество параллельных потоков, подающих нагрузку. Каждый поток пишет в свою сессию.<br>Тип: `uint32`.<br>Обязательный.
+`DeleteTableOnFinish` | обязательный. Удалять ли таблицы после завершения работы нагрузки. Неудаление полезно в сценарии долгого предварительного создания большой таблицы и последующими (читающими) тестами.<br>Тип: `bool`.<br>Обязательный.
+`UniformPartitionsCount` | Количество партиций, создаваемых в тестовых таблицах.<br>Тип: `uint32`.<br>Обязательный.
+`WorkloadType` | Позволяет выбрать тип нагрузки.<br>Key-Value:<ul><li>`0` — UpsertRandom;</li><li>`1` — InsertRandom;</li><li>`2` — SelectRandom.</li></ul>Stok:<ul><li>`0` — InsertRandomOrder;</li><li>`1` — SubmitRandomOrder;</li><li>`2` — SubmitSameOrder;</li><li>`3` — GetRandomCustomerHistory;</li><li>`4` — GetCustomerHistory.</li></ul>Тип: `uint32`.<br>Обязательный.
+`Workload` | Одно из значений:<ul><li>`TStockWorkload Stock` — ;</li><li>`TKvWorkload Kv` — .</li></ul>
+
+### TStockWorkload {#stock-workload}
+
+<!--
+Параметр | Описание
+--- | ---
+optional uint64 ProductCount = 1 [default = 100];
+optional uint64 Quantity = 2 [default = 1000];
+optional uint64 OrderCount = 3 [default = 100];
+optional uint64 Limit = 4 [default = 10];
+optional bool PartitionsByLoad = 5 [default = true];
+ -->
+
+### TKvWorkload {#kv-workload}
+
+Параметр | Описание
+--- | ---
+`InitRowCount` | До начала нагрузки нагружающий актор запишет в таблицу указанное количество строк.<br>Тип: `uint64`.<br>Значение по умолчанию: — `1000`.<br>Необязательный.
+`PartitionsByLoad` | Добавлять ли к тестовой таблице аттрибут `AUTO_PARTITIONING_BY_LOAD`.<br>Тип: `bool`.<br>Значение по умолчанию: — `true`.<br>Необязательный.
+`MaxFirstKey` | Ограничивает диапазон значений ключа. Создан для того, чтобы при читающей нагрузке случайные ключи попадал в диапазон ключей таблицы.<br>Тип: `uint64`.<br>Значение по умолчанию: — `18446744073709551615`.<br>Необязательный.
+`StringLen` | Длина строки `value`.<br>Тип: `uint64`.<br>Значение по умолчанию: — `8`.<br>Необязательный.
+`ColumnsCnt` | Сколько столбцов использовать в таблице.<br>Тип: `uint64`.<br>Значение по умолчанию: — `2` (столбцы для key и value).<br>Необязательный.
+`RowsCnt` | Сколько строк вставлять/читать в одном SQL запросе<br>Тип: `uint64`.<br>Значение по умолчанию: — `1`.<br>Необязательный.
+
+## Примеры {#example}
+
+Нагрузка базы `/slice/db` типа STOCK простыми UPSERT-запросами в 64 потока длительностью 30 секунд. До начала работы создает необходимые для работы таблицы, после нагрузки удаляет их.
```proto
KqpLoadStart: {
@@ -65,4 +95,6 @@ KqpLoadStart: {
Limit: 10
}
}
-``` \ No newline at end of file
+```
+
+{% include notitle [addition](../_includes/addition.md) %}
diff --git a/ydb/docs/ru/core/development/load-start.md b/ydb/docs/ru/core/development/load-start.md
index d5f2048ef05..670ff9f735e 100644
--- a/ydb/docs/ru/core/development/load-start.md
+++ b/ydb/docs/ru/core/development/load-start.md
@@ -1,51 +1,57 @@
-# Нагрузка одной storage группы
+# DSProxy нагрузка
-Представляется таблеткой и пишет в группу
+Представляется таблеткой и пишет в группу.
+## Структура {#proto}
-## Описание
```proto
- message TLoadStart {
- message TRequestInfo {
- optional float SendTime = 1;
- optional uint64 Type = 2;
- optional uint32 Size = 3;
- optional EPutHandleClass PutHandleClass = 4;
- }
- message TTabletInfo {
- optional uint64 TabletId = 1;
- optional uint32 Channel = 2;
- optional uint32 GroupId = 3;
- optional uint32 Generation = 4;
- repeated TRequestInfo Requests = 5;
- optional float ScriptedCycleDurationSec = 6;
- }
- message TPerTabletProfile {
- repeated TTabletInfo Tablets = 1;
- repeated TSizeInfo Sizes = 2;
- repeated TIntervalInfo WriteIntervals = 3;
- optional uint32 MaxInFlightRequests = 4;
- optional uint32 MaxInFlightBytes = 5;
- repeated TIntervalInfo FlushIntervals = 6;
- optional EPutHandleClass PutHandleClass = 7;
- optional bool Soft = 8;
- optional uint32 MaxInFlightReadRequests = 9;
- optional uint32 MaxInFlightReadBytes = 10;
- repeated TIntervalInfo ReadIntervals = 11;
- repeated TSizeInfo ReadSizes = 12;
- optional uint64 MaxTotalBytesWritten = 13;
- optional EGetHandleClass GetHandleClass = 14;
- };
- optional uint64 Tag = 1;
- optional uint32 DurationSeconds = 2;
- optional bool RequestTracking = 3 [default = false];
- repeated TPerTabletProfile Tablets = 4;
- optional uint64 ScheduleThresholdUs = 5;
- optional uint64 ScheduleRoundingUs = 6;
+message TLoadStart {
+ message TRequestInfo {
+ optional float SendTime = 1;
+ optional uint64 Type = 2;
+ optional uint32 Size = 3;
+ optional EPutHandleClass PutHandleClass = 4;
}
+ message TTabletInfo {
+ optional uint64 TabletId = 1;
+ optional uint32 Channel = 2;
+ optional uint32 GroupId = 3;
+ optional uint32 Generation = 4;
+ repeated TRequestInfo Requests = 5;
+ optional float ScriptedCycleDurationSec = 6;
+ }
+ message TPerTabletProfile {
+ repeated TTabletInfo Tablets = 1;
+ repeated TSizeInfo Sizes = 2;
+ repeated TIntervalInfo WriteIntervals = 3;
+ optional uint32 MaxInFlightRequests = 4;
+ optional uint32 MaxInFlightBytes = 5;
+ repeated TIntervalInfo FlushIntervals = 6;
+ optional EPutHandleClass PutHandleClass = 7;
+ optional bool Soft = 8;
+ optional uint32 MaxInFlightReadRequests = 9;
+ optional uint32 MaxInFlightReadBytes = 10;
+ repeated TIntervalInfo ReadIntervals = 11;
+ repeated TSizeInfo ReadSizes = 12;
+ optional uint64 MaxTotalBytesWritten = 13;
+ optional EGetHandleClass GetHandleClass = 14;
+ };
+ optional uint64 Tag = 1;
+ optional uint32 DurationSeconds = 2;
+ optional bool RequestTracking = 3 [default = false];
+ repeated TPerTabletProfile Tablets = 4;
+ optional uint64 ScheduleThresholdUs = 5;
+ optional uint64 ScheduleRoundingUs = 6;
+}
```
-## Примеры
+## Примеры {#example}
+
+**Читающая нагрузка**
+
+Нагрузка пишет в группу `$GROUPID`, состоит из двух частей. Первая - пишущая, подает небольшой фон пишущих запросов размера `$SIZE` каждые 50 мс, при этом ограничивает `InFlight` 1. То есть если запрос не успевает завершиться, то актор будет ждать завершения и после этого через 50мс, будет запущен следующий запрос.
+
+Вторая часть основная, читающая. Читает запросами размера `$SIZE`, запросы отправляет каждые `${INTERVAL}` микросекунд. Можно его задать в 0, тогда этот параметр не будет играть роли. Конфигурация ограничивает количество запросов в полете числом `${IN_FLIGHT}`.
```proto
NodeId: ${NODEID}
@@ -70,6 +76,10 @@ Event: { LoadStart: {
}}
```
+**Пишущая нагрузка**
+
+Пишет в группу `$GROUPID` нагрузку длительностью `$DURATION` секунд. Пишет размерами `$SIZE`, ограничивая количество запросов в полете числом `$IN_FLIGHT`.
+
```proto
NodeId: ${NODEID}
Event: { LoadStart: {
@@ -87,3 +97,5 @@ Event: { LoadStart: {
}
}}
```
+
+{% include notitle [addition](../_includes/addition.md) %}
diff --git a/ydb/docs/ru/core/development/load-stop.md b/ydb/docs/ru/core/development/load-stop.md
index 123f6405c15..dc6eafc4307 100644
--- a/ydb/docs/ru/core/development/load-stop.md
+++ b/ydb/docs/ru/core/development/load-stop.md
@@ -1,29 +1,45 @@
# Остановка нагрузки
-## Описание
+С помощью актора LoadStop вы можете остановить нагрузку на указанной ноде.
+
+## Структура {#proto}
+
```proto
message TLoadStop {
- optional uint64 Tag = 1; // Тег нагрузки, может быть задан для остановки конкретной нагрузки. Тег можно посмотреть в UI load-actor
- optional bool RemoveAllTags = 2; // Остановить все нагрузочные акторы на ноде
+ optional uint64 Tag = 1;
+ optional bool RemoveAllTags = 2;
}
```
-## Примеры
+## Параметры {#options}
+
+### TLoadStop
+
+Параметр | Описание
+--- | ---
+`Tag` | Тег нагрузки, может быть задан для остановки конкретной нагрузки. Тег можно посмотреть в UI load-actor `uint64`.
+`RemoveAllTags` | Остановить все нагрузочные акторы на ноде `bool`.
+
+## Примеры {#examples}
+
+Остановить акторы с тегом `123` на ноде с идентификатором `1`:
```proto
NodeId: 1
Event: {
LoadStop: {
- RemoveAllTags: true
+ Tag: 123
}
}
```
-или
+
+Остановить все нагрузочные акторы на ноде с идентификатором `1`:
+
```proto
NodeId: 1
Event: {
LoadStop: {
- Tag: 123
+ RemoveAllTags: true
}
}
-``` \ No newline at end of file
+```
diff --git a/ydb/docs/ru/core/development/memory-load-start.md b/ydb/docs/ru/core/development/memory-load-start.md
index 7acfb8f0c9d..942cbac1f65 100644
--- a/ydb/docs/ru/core/development/memory-load-start.md
+++ b/ydb/docs/ru/core/development/memory-load-start.md
@@ -1,6 +1,6 @@
-# Проверка производительности работы памяти
+# Проверка производительности памяти
-## Описание
+## Структура {#proto}
```proto
message TMemoryLoadStart {
@@ -10,14 +10,28 @@ message TMemoryLoadStart {
optional uint64 IntervalUs = 4;
}
```
+<!--
+## Параметры {#options}
-## Примеры
+### MemoryLoadStart
+
+Параметр | Описание
+--- | ---
+`Tag` | Тип: `uint64`.
+`DurationSeconds` | Тип: `uint32`.
+`BlockSize` | Тип: `uint64`.
+`IntervalUs` | Тип: `uint64`.
+-->
+
+## Примеры {#examples}
```proto
-NodeId: 3
+NodeId: 1
Event: { MemoryLoadStart: {
DurationSeconds: 120
- IntervalUs: 1000
BlockSize: 4096
+ IntervalUs: 1000
}}
-``` \ No newline at end of file
+```
+
+{% include notitle [addition](../_includes/addition.md) %}
diff --git a/ydb/docs/ru/core/development/pdisk-load-start.md b/ydb/docs/ru/core/development/pdisk-load-start.md
index fba7b54b919..4af6f7ff544 100644
--- a/ydb/docs/ru/core/development/pdisk-load-start.md
+++ b/ydb/docs/ru/core/development/pdisk-load-start.md
@@ -1,12 +1,42 @@
-# Нагрузка на PDisk, write-only
+# PDisk нагрузка на запись
Представляется VDisk и пишет на PDisk данные, и в чанки, и в лог. Самостоятельно выделяет чанки для записи и освобождает в конце работы.
-## Описание
+## Структура {#proto}
+
+<!--
+```proto
+enum ELogMode {
+ LOG_PARALLEL = 1;
+ LOG_SEQUENTIAL = 2;
+ LOG_NONE = 3;
+}
+message TPDiskLoadStart {
+ message TChunkInfo {
+ optional uint32 Slots = 1; // number of slots per chunk
+ optional uint32 Weight = 2; // probability weight
+ }
+ optional uint64 Tag = 1;
+ optional uint32 PDiskId = 2;
+ optional uint64 PDiskGuid = 3;
+ optional NKikimrBlobStorage.TVDiskID VDiskId = 4;
+ repeated TChunkInfo Chunks = 5;
+ optional uint32 DurationSeconds = 6;
+ optional uint32 InFlightWrites = 7;
+ optional ELogMode LogMode = 8;
+ optional bool Sequential = 9 [default = true];
+ optional uint32 IntervalMsMin = 10;
+ optional uint32 IntervalMsMax = 11;
+ optional bool Reuse = 12 [default = false];
+ optional bool IsWardenlessTest = 13 [default = false];
+}
+```
+-->
+
```proto
enum ELogMode {
- LOG_PARALLEL = 1; // Писать в чанк и писать в лог (о факте записи) параллельно, и считать запись завершённой только если обе записи прошли
- LOG_SEQUENTIAL = 2; // Писать сначала в чанк, потом в лог. Считать запись завершённой после записи в лог
+ LOG_PARALLEL = 1; // Писать в чанк и писать в лог (о факте записи) параллельно, и считать запись завершенной только если обе записи прошли
+ LOG_SEQUENTIAL = 2; // Писать сначала в чанк, потом в лог. Считать запись завершенной после записи в лог
LOG_NONE = 3;
}
@@ -18,14 +48,14 @@ message TPDiskLoadStart {
}
optional uint64 Tag = 1; // необязательный. Если не задан, то тег будет присвоен автоматически
optional uint32 PDiskId = 2; // обязательный. Id, на который нужно подать нагрузку. Можно узнать из UI кластера
- optional uint64 PDiskGuid = 3; // обязательный. Guid того PDisk, на который подаётся нагрузка. Можно узнать на UI странице PDisk
+ optional uint64 PDiskGuid = 3; // обязательный. Guid того PDisk, на который подается нагрузка. Можно узнать на UI странице PDisk
optional NKikimrBlobStorage.TVDiskID VDiskId = 4; // обязательный. Этим VDiskId нагружающий актор представится PDisk.
// Не должен дублироваться между разными нагружающими акторами.
repeated TChunkInfo Chunks = 5; // обязательный. Описание того, сколько чанков использовать для подачи нагрузки. Позволяет варьировать нагрузку.
// К примеру, можно сделать два чанка - один с большим количеством слотов и один с маленьким и задать веса чанков
// таким образом, чтобы 95% записей были небольшого размера, а 5% -- большого, имитируя тем самым compaction VDisk
optional uint32 DurationSeconds = 6; // обязательный. Длительность теста
- optional uint32 InFlightWrites = 7; // обязательный. Ограничивает количество запросов в полёте к PDisk
+ optional uint32 InFlightWrites = 7; // обязательный. Ограничивает количество запросов в полете к PDisk
optional ELogMode LogMode = 8; // обязательный. См. выше ELogMode
optional bool Sequential = 9 [default = true]; // необязательный. Писать в слоты чанков записи последовательно или случайно.
optional uint32 IntervalMsMin = 10; // необязательный. См. ниже
@@ -38,3 +68,5 @@ message TPDiskLoadStart {
optional bool IsWardenlessTest = 13 [default = false]; // позволяет использовать в тестах, где нет NodeWarden
}
```
+
+{% include notitle [addition](../_includes/addition.md) %}
diff --git a/ydb/docs/ru/core/development/pdisk-log-load-start.md b/ydb/docs/ru/core/development/pdisk-log-load-start.md
index e873c526afb..494a17a8ffb 100644
--- a/ydb/docs/ru/core/development/pdisk-log-load-start.md
+++ b/ydb/docs/ru/core/development/pdisk-log-load-start.md
@@ -1,29 +1,32 @@
-# Нагрузка, пишущая в лог PDisk
+# PDisk нагрузка, пишущая в лог
+
+## Структура {#proto}
-## Описание
```proto
- message TPDiskLogLoadStart {
- message TWorkerConfig {
- optional NKikimrBlobStorage.TVDiskID VDiskId = 1;
- optional uint32 MaxInFlight = 2;
+message TPDiskLogLoadStart {
+ message TWorkerConfig {
+ optional NKikimrBlobStorage.TVDiskID VDiskId = 1;
+ optional uint32 MaxInFlight = 2;
+
+ // Measurement units of all parameters is bytes
+ optional uint32 SizeIntervalMin = 3;
+ optional uint32 SizeIntervalMax = 4;
+ optional uint64 BurstInterval = 5;
+ optional uint64 BurstSize = 6;
+ optional uint64 StorageDuration = 7;
- // Measurement units of all parameters is bytes
- optional uint32 SizeIntervalMin = 3;
- optional uint32 SizeIntervalMax = 4;
- optional uint64 BurstInterval = 5;
- optional uint64 BurstSize = 6;
- optional uint64 StorageDuration = 7;
+ optional uint64 MaxTotalBytesWritten = 8;
+ }
- optional uint64 MaxTotalBytesWritten = 8;
- }
+ optional uint64 Tag = 1;
+ optional uint32 PDiskId = 2;
+ optional uint64 PDiskGuid = 3;
- optional uint64 Tag = 1;
- optional uint32 PDiskId = 2;
- optional uint64 PDiskGuid = 3;
+ optional uint32 DurationSeconds = 5;
+ repeated TWorkerConfig Workers = 7;
- optional uint32 DurationSeconds = 5;
- repeated TWorkerConfig Workers = 7;
+ optional bool IsWardenlessTest = 8 [default = false];
+}
+```
- optional bool IsWardenlessTest = 8 [default = false];
- }
-``` \ No newline at end of file
+{% include notitle [addition](../_includes/addition.md) %}
diff --git a/ydb/docs/ru/core/development/pdisk-read-load-start.md b/ydb/docs/ru/core/development/pdisk-read-load-start.md
index 0e36a42e516..30c1a68eedb 100644
--- a/ydb/docs/ru/core/development/pdisk-read-load-start.md
+++ b/ydb/docs/ru/core/development/pdisk-read-load-start.md
@@ -1,7 +1,7 @@
-# Читающая нагрузка на PDisk
+# PDisk нагрузка на чтение
+## Структура {#proto}
-## Описание
```proto
message TPDiskReadLoadStart {
message TChunkInfo {
@@ -22,4 +22,6 @@ message TPDiskReadLoadStart {
optional bool IsWardenlessTest = 13 [default = false];
}
-``` \ No newline at end of file
+```
+
+{% include notitle [addition](../_includes/addition.md) %}
diff --git a/ydb/docs/ru/core/development/testing-load-actor.md b/ydb/docs/ru/core/development/testing-load-actor.md
index f6abaf8eeea..c9a36479875 100644
--- a/ydb/docs/ru/core/development/testing-load-actor.md
+++ b/ydb/docs/ru/core/development/testing-load-actor.md
@@ -10,24 +10,24 @@
Тип | Описание
--- | ---
-[LoadStart](load-start.md) | нагружающий актор, подающий нагрузку от лица таблетки. Имитирует таблетку, создает себе TabletId и пишет в указанные storage-группы.
-[PDiskLoadStart](pdisk-load-start.md) | нагружающий актор для подачи write-only нагрузки на PDisk. Имитирует VDisk.
-[VDiskLoadStart](vdisk-load-start.md) | нагружающий актор для подачи нагрузки на VDisk. Имитирует DSProxy и пишет в локальный VDisk.
-[PDiskReadLoadStart](pdisk-read-load-start.md) | нагружающий актор для подачи read-only нагрузки на PDisk. Имитирует VDisk.
-[PDiskLogLoadStart](pdisk-log-load-start.md) | специальный нагружающий актор, написанный для тестирования вырезания из середины лога PDisk. Имитирует VDisk. Не является нагружающим, в первую очередь направлен на тестирование корректности.
-[KeyValueLoadStart](key-value-load-start.md) | нагружающий актор для подачи нагрузки на KvTablet.
-[KqpLoadStart](kqp-load-start.md) | нагружающий актор для подачи нагрузки на KQP часть и, соответственно, на весь кластер в целом. Аналогичен `ydb_cli workload`, есть два подвида - stock и kv.
-[MemoryLoadStart](memory-load-start.md) | специальный нагружающий актор, проверяет производительность работы памяти. Кажется, используется в math bench - иногда запускается на кластере и рисует график времени работы.
-[LoadStop](load-stop.md) | остановить нагрузку либо с конкретным тегом, либо со всеми.
+[LoadStart](load-start.md) | Нагружающий актор, подающий нагрузку от лица таблетки. Имитирует таблетку, создает себе TabletId и пишет в указанные storage-группы.
+[PDiskLoadStart](pdisk-load-start.md) | Нагружающий актор для подачи write-only нагрузки на PDisk. Имитирует VDisk.
+[VDiskLoadStart](vdisk-load-start.md) | Нагружающий актор для подачи нагрузки на VDisk. Имитирует DSProxy и пишет в локальный VDisk.
+[PDiskReadLoadStart](pdisk-read-load-start.md) | Нагружающий актор для подачи read-only нагрузки на PDisk. Имитирует VDisk.
+[PDiskLogLoadStart](pdisk-log-load-start.md) | Специальный нагружающий актор, написанный для тестирования вырезания из середины лога PDisk. Имитирует VDisk. Не является нагружающим, в первую очередь направлен на тестирование корректности.
+[KeyValueLoadStart](key-value-load-start.md) | Нагружающий актор для подачи нагрузки на KvTablet.
+[KqpLoadStart](kqp-load-start.md) | Нагружающий актор для подачи нагрузки на KQP часть и, соответственно, на весь кластер в целом. Аналогичен `ydb_cli workload`, есть два подвида - stock и kv.
+[MemoryLoadStart](memory-load-start.md) | Специальный нагружающий актор, проверяет производительность работы памяти. Кажется, используется в math bench - иногда запускается на кластере и рисует график времени работы.
+[LoadStop](load-stop.md) | Остановить нагрузку либо с конкретным тегом, либо со всеми.
## Запуск нагрузки {load-actor-start}
Вы можете запустить нагрузку следующими способами:
-* командой через бинарник ydbd -- `ydbd bs-load-test`
-* viewer UI кластера
+* командой через исполняемый файл `ydbd bs-load-test`;
+* viewer UI кластера.
-В обоих вариантах подачи нагрузки необходимо создать proto-файл с текстовым описанием. Пример файла:
+В обоих случаях подачи нагрузки необходимо создать proto-файл с текстовым описанием. Пример файла:
```proto
NodeId: 1
@@ -52,20 +52,22 @@ Event:
}
```
+* `NodeId` — идентификатор ноды, на которой будет запущен актор;
+* `Event` — описание актора.
-### ydbd
+### ydbd {#ydbd}
-Запустить нагрузку можно используя бинарник `ydbd`. Для этого в нём существует команда `bs-load-test`
+Запустить нагрузку можно используя команду `ydbd bs-load-test`:
```bash
ydbd bs-load-test -s $SERVER --protobuf "$PROTO"
```
-### Подача нагрузки через viewer UI
+### Viewer UI {#ui}
![пример UI](../_assets/load_actor_ui.jpeg)
-<br>
-UI позволяет по proto-описанию создать нагружающего актора либо на одной текущей ноде, либо сразу на всех нодах тенанта (если страница принадлежит тенанту). За созданными акторами можно сделить на той же странице.
+
+UI позволяет по proto-описанию создать нагружающий актор либо на одной текущей ноде, либо сразу на всех нодах тенанта (если страница принадлежит тенанту). За созданными акторами можно следить на той же странице.
## Примеры {#load-examples}
@@ -99,4 +101,4 @@ Event: { MemoryLoadStart: {
IntervalUs: 1000
BlockSize: 4096
}}
-``` \ No newline at end of file
+```
diff --git a/ydb/docs/ru/core/development/vdisk-load-start.md b/ydb/docs/ru/core/development/vdisk-load-start.md
index e862de77d15..c7bfc89beed 100644
--- a/ydb/docs/ru/core/development/vdisk-load-start.md
+++ b/ydb/docs/ru/core/development/vdisk-load-start.md
@@ -1,6 +1,7 @@
-# Нагрузка на VDisk
+# VDisk нагрузка
+
+## Структура {#proto}
-## Описание
```proto
message TVDiskLoadStart {
optional uint64 Tag = 1;
@@ -41,4 +42,6 @@ message TVDiskLoadStart {
// minimum distance kept between current Step of written blobs and CollectStep of barriers
optional uint32 StepDistance = 15;
}
-``` \ No newline at end of file
+```
+
+{% include notitle [addition](../_includes/addition.md) %}
diff --git a/ydb/docs/ru/core/toc_i.yaml b/ydb/docs/ru/core/toc_i.yaml
index 9a1cae1458a..b9ef46ae865 100644
--- a/ydb/docs/ru/core/toc_i.yaml
+++ b/ydb/docs/ru/core/toc_i.yaml
@@ -27,7 +27,7 @@ items:
items:
- name: Тестирование с помощью нагружающих акторов
href: development/testing-load-actor.md
- - name: key-value нагрузка
+ - name: KV нагрузка
href: development/key-value-load-start.md
- name: KQP нагрузка
href: development/kqp-load-start.md
@@ -35,7 +35,7 @@ items:
href: development/load-start.md
- name: Остановка нагрузки
href: development/load-stop.md
- - name: Нагрузка, проверяющая память
+ - name: Проверка производительности памяти
href: development/memory-load-start.md
- name: PDisk нагрузка на запись
href: development/pdisk-load-start.md