diff options
author | alextarazanov <[email protected]> | 2023-04-03 12:32:13 +0300 |
---|---|---|
committer | alextarazanov <[email protected]> | 2023-04-03 12:32:13 +0300 |
commit | 0813fea18a4670f4a98cea7c42a766d61fabcf02 (patch) | |
tree | 7d1efb239b94bb7155e689f00c074565079cff6b | |
parent | 7af8ba98bad602c669b4cabc3b38924064aca8ca (diff) |
translation
Перевод для https://st.yandex-team.ru/
Локальная сборка без ошибок.
-rw-r--r-- | ydb/docs/en/core/_includes/load-actors-interval.md | 7 | ||||
-rw-r--r-- | ydb/docs/en/core/development/load-actors-storage.md | 10 | ||||
-rw-r--r-- | ydb/docs/en/core/development/load-actors-vdisk.md | 57 |
3 files changed, 33 insertions, 41 deletions
diff --git a/ydb/docs/en/core/_includes/load-actors-interval.md b/ydb/docs/en/core/_includes/load-actors-interval.md new file mode 100644 index 00000000000..13e9175ac82 --- /dev/null +++ b/ydb/docs/en/core/_includes/load-actors-interval.md @@ -0,0 +1,7 @@ +An interval written as a repeated `TIntervalInfo` field is calculated by the following algorithm: + +* An element from the `TIntervalInfo` array is selected at random with the probability proportionate to its weight. +* For an element of the `TIntervalUniform` type, the value is chosen with equal probability in the range Min-Max. `Min-Max` (if `MinMs/MaxMs` is used, the value is in milliseconds; if `MinUs/MaxUs` is used, the value is in microseconds). +* For an element of the `TIntervalPoisson` type, the interval is selected using the formula `Min(log(-x / Frequency), MaxIntervalMs)`, where `x` is a random value in the interval `[0, 1]`. As a result, the intervals follow the Poisson distribution with the given `Frequency`, but with the interval within `MaxIntervalMs`. + +A similar approach is used for the probabilistic distribution of the size of the written data. However, in this case, only the data size follows a uniform probability distribution, within the interval `[Min, Max]`. diff --git a/ydb/docs/en/core/development/load-actors-storage.md b/ydb/docs/en/core/development/load-actors-storage.md index 25d7e71fe65..e9bb087121f 100644 --- a/ydb/docs/en/core/development/load-actors-storage.md +++ b/ydb/docs/en/core/development/load-actors-storage.md @@ -16,15 +16,19 @@ You can generate two types of load: | ` DurationSeconds` | Load duration. | | ` Tablets` | The load is generated on behalf of a tablet with the following parameters:<ul><li>` TabletId`: Tablet ID. It must be unique for each load actor.</li><li>` Channel`: Tablet channel.</li><li>` GroupId`: ID of the VDisk group to get loaded.</li><li>` Generation`: Tablet generation.</li></ul> | | ` WriteSizes` | Size of the data to write. It is selected randomly for each request from the `Min`-`Max` range. You can set multiple `WriteSizes` ranges, in which case a value from a specific range will be selected based on its `Weight`. | -| ` WriteIntervals` | Interval between requests under interval load, in microseconds. It is selected randomly for each request from the `MinUs`-`MaxUs` range. You can set multiple `WriteIntervals` ranges, in which case a value from a specific range will be selected based on its `Weight`. | +| ` WriteIntervals` | Setting up the [parameters for probabilistic distribution](#params) of intervals between the records loaded at intervals (in milliseconds). You can set multiple `WriteIntervals` ranges, in which case a value from a specific range will be selected based on its `Weight`. | | ` MaxInFlightWriteRequests` | Maximum number of simultaneously processed write requests. | | ` ReadSizes` | Size of the data to read. It is selected randomly for each request from the `Min`-`Max` range. You can set multiple `ReadSizes` ranges, in which case a value from a specific range will be selected based on its `Weight`. | -| ` ReadIntervals` | Interval between requests under interval load, in microseconds. It is selected randomly for each request from the `MinUs`-`MaxUs` range. You can set multiple `ReadIntervals` ranges, in which case a value from a specific range will be selected based on its `Weight`. | +| ` ReadIntervals` | Setting up the [parameters for probabilistic distribution](#params) of intervals between the queries loaded by intervals (in milliseconds). You can set multiple `ReadIntervals` ranges, in which case a value from a specific range will be selected based on its `Weight`. | | ` MaxInFlightReadRequests` | Maximum number of simultaneously processed read requests. | -| ` FlushIntervals` | Interval between the requests to flush the data written by the StorageLoad actor, in microseconds. It is selected randomly from the `MinUs`-`MaxUs` range. You can set multiple `FlushIntervals` ranges, in which case a value from a specific range will be selected based on its `Weight`. | +| ` FlushIntervals` | Setting up the [parameters for probabilistic distribution](#params) of intervals (in microseconds) between the queries used to delete data written by the StorageLoad actor. You can set multiple `FlushIntervals` ranges, in which case a value from a specific range will be selected based on its `Weight`. | | ` PutHandleClass` | Class of data writes to the disk subsystem. If the `TabletLog` value is set, the write operation has the highest priority. | | ` GetHandleClass` | Class of data reads from the disk subsystem. If the `FastRead` is set, the read operation is performed with the highest speed possible. | +### Parameters of probabilistic distribution {#params} + +{% include [load-actors-params](../_includes/load-actors-interval.md) %} + ## Examples {#examples} ### Write load {#write} diff --git a/ydb/docs/en/core/development/load-actors-vdisk.md b/ydb/docs/en/core/development/load-actors-vdisk.md index ba4a1cee932..d63fe9dbdf0 100644 --- a/ydb/docs/en/core/development/load-actors-vdisk.md +++ b/ydb/docs/en/core/development/load-actors-vdisk.md @@ -1,49 +1,30 @@ # VDiskLoad -Generates a write-only load on the VDisk. Simulates a Distributed Storage Proxy. The test outputs the write performance in operations per second. +Generates a write-only load on the VDisk. Simulates a Distributed Storage Proxy. The test outputs the VDisk write performance in operations per second. {% include notitle [addition](../_includes/addition.md) %} ## Actor parameters {#options} -```proto -message TVDiskLoad { - optional uint64 Tag = 1; +{% include [load-actors-params](../_includes/load-actors-params.md) %} - // full VDisk identifier - optional NKikimrBlobStorage.TVDiskID VDiskId = 2; +| Parameter | Description | +--- | --- +| `VDiskId` | Parameters of the VDisk used to generate load.<ul><li>`GroupID`: Group ID.</li><li>`GroupGeneration`: Group generation.</li><li>`Ring`: Group ring ID.</li><li>`Domain`: Ring fail domain ID.</li><li>`VDisk`: Index of the VDisk in the fail domain.</li></ul> | +| `GroupInfo` | Description of the group hosting the loaded VDisk (of the appropriate generation). | +| `TabletId` | ID of the tablet that generates the load. It must be unique for each load actor. | +| `Channel` | ID of the channel inside the tablet that will be specified in the BLOB write and garbage collection commands. | +| `DurationSeconds` | The total test time in seconds; when it expires, the load stops automatically. | +| `WriteIntervals` | Setting up the [parameters for probabilistic distribution](#params) of intervals between the records. | +| `WriteSizes` | Size of the data to write. It is selected randomly for each request from the `Min`-`Max` range. You can set multiple `WriteSizes` ranges, in which case a value from a specific range will be selected based on its `Weight`. | +| `InFlightPutsMax` | Maximum number of concurrent BLOB write queries against the VDisk (TEvVPut queries); if omitted, the number of queries is unlimited. | +| `InFlightPutBytesMax` | Maximum number of bytes in the concurrent BLOB write queries against the VDisk (TEvVPut-requests). | +| `PutHandleClass` | Class of data writes to the disk subsystem. If the `TabletLog` value is set, the write operation has the highest priority. | +| `BarrierAdvanceIntervals` | Setting up the [parameters for probabilistic distribution](#params) of intervals between the advance of the garbage collection barrier and the write step. | +| `StepDistance` | Distance between the currently written step `Gen:Step` of the BLOB and its currently collected step. The higher is the value, the more data is stored. Data is written from `Step = X` and deleted from all the BLOBs where `Step = X - StepDistance`. The `Step` is periodically incremented by one (with the `BarrierAdvanceIntervals` period). | - reserved 3; // obsolete field - reserved 4; // obsolete field - optional NKikimrBlobStorage.TGroupInfo GroupInfo = 16; +### Parameters of probabilistic distribution {#params} - // tablet id, channel and generation used in blob ids and barriers - optional uint64 TabletId = 5; - optional uint32 Channel = 6; - optional uint32 Generation = 7; +{% include [load-actors-params](../_includes/load-actors-interval.md) %} - // duration of the test in seconds - optional uint32 DurationSeconds = 8; - - // a distribution of intervals between adjacent writes - repeated TIntervalInfo WriteIntervals = 9; - - // a distribution of write block sizes (expressed in bytes of BlobSize; i.e. PartSize bytes are actually written) - repeated TSizeInfo WriteSizes = 10; - - // maximum number of unconfirmed parallel writes - optional uint32 InFlightPutsMax = 11; - - // soft maximum of total in flight put bytes - optional uint64 InFlightPutBytesMax = 12; - - // put handle class - optional NKikimrBlobStorage.EPutHandleClass PutHandleClass = 13; - - // a distribution of intervals between barrier advances - repeated TIntervalInfo BarrierAdvanceIntervals = 14; - - // minimum distance kept between current Step of written blobs and CollectStep of barriers - optional uint32 StepDistance = 15; -} -``` +<!-- ## Примеры {#examples} --> |