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

# PDiskLogLoad

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

<!-- diplodoc:svg ![load-actors](../_assets/pdisklogload.svg) --><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="751px" height="491px" viewBox="-0.5 -0.5 751 491" style="background-color: rgb(255, 255, 255);"><defs/><g><rect x="0" y="0" width="750" height="490" fill="none" stroke="none" pointer-events="all"/><rect x="500" y="220.62" width="40" height="20" fill="#6c8ebf" stroke="rgb(0, 0, 0)" pointer-events="all"/><rect x="420" y="220.62" width="80" height="20" fill="#6c8ebf" stroke="#000000" pointer-events="all"/><path d="M 470 160.62 L 465 160.62 Q 460 160.62 460 170.62 L 460 190 Q 460 200 455 200 L 452.5 200 Q 450 200 455 200 L 457.5 200 Q 460 200 460 210 L 460 229.37 Q 460 239.37 465 239.37 L 470 239.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" transform="translate(460,0)scale(-1,1)translate(-460,0)rotate(90,460,200)" pointer-events="all"/><rect x="430" y="160.62" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 176px; margin-left: 431px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">SizeInterval<br/>VDisk1</div></div></div></foreignObject><text x="460" y="179" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">SizeInterv...</text></switch></g><path d="M 530 200 L 510 200" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 6" pointer-events="stroke"/><path d="M 490 90 L 485 90 Q 480 90 480 100 L 480 140 Q 480 150 475 150 L 472.5 150 Q 470 150 475 150 L 477.5 150 Q 480 150 480 160 L 480 200 Q 480 210 485 210 L 490 210" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" transform="translate(480,0)scale(-1,1)translate(-480,0)rotate(90,480,150)" pointer-events="all"/><rect x="425" y="110.93" width="110" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 126px; margin-left: 426px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">BurstSize VDisk1</div></div></div></foreignObject><text x="480" y="130" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">BurstSize VDisk1</text></switch></g><path d="M 529.54 2.65 L 524.54 2.65 Q 519.54 2.65 519.54 12.65 L 519.54 91.56 Q 519.54 101.56 514.54 101.56 L 512.04 101.56 Q 509.54 101.56 514.54 101.56 L 517.04 101.56 Q 519.54 101.56 519.54 111.56 L 519.54 190.47 Q 519.54 200.47 524.54 200.47 L 529.54 200.47" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" transform="translate(519.54,0)scale(-1,1)translate(-519.54,0)rotate(90,519.54,101.56)" pointer-events="all"/><rect x="490" y="60" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 75px; margin-left: 491px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">BurstInterval<br/>VDisk1</div></div></div></foreignObject><text x="520" y="79" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">BurstInter...</text></switch></g><path d="M 550 -70 L 545 -70 Q 540 -70 540 -60 L 540 40 Q 540 50 535 50 L 532.5 50 Q 530 50 535 50 L 537.5 50 Q 540 50 540 60 L 540 160 Q 540 170 545 170 L 550 170" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" transform="translate(540,0)scale(-1,1)translate(-540,0)rotate(90,540,50)" pointer-events="all"/><path d="M 650 139.8 L 630 139.8" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 6" pointer-events="stroke"/><rect x="472.81" y="19.99" width="134.37" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 132px; height: 1px; padding-top: 35px; margin-left: 474px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">StorageDuration VDisk1</div></div></div></foreignObject><text x="540" y="39" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">StorageDuration VDisk1</text></switch></g><rect x="540" y="220.62" width="80" height="20" fill="#dae8fc" stroke="#000000" pointer-events="all"/><rect x="620" y="220.62" width="40" height="20" fill="#6c8ebf" stroke="rgb(0, 0, 0)" pointer-events="all"/><rect x="100" y="240.62" width="40" height="20" fill="#82b366" stroke="rgb(0, 0, 0)" pointer-events="all"/><rect x="20" y="240.62" width="80" height="20" fill="#82b366" stroke="#000000" pointer-events="all"/><rect x="140" y="240.62" width="280" height="20" fill="#f5f5f5" stroke="#000000" pointer-events="all"/><path d="M 70 240.62 L 65 240.62 Q 60 240.62 60 250.62 L 60 269.99 Q 60 279.99 55 279.99 L 52.5 279.99 Q 50 279.99 55 279.99 L 57.5 279.99 Q 60 279.99 60 289.99 L 60 309.37 Q 60 319.37 65 319.37 L 70 319.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" transform="translate(60,0)scale(-1,1)translate(-60,0)rotate(-90,60,279.99)" pointer-events="all"/><rect x="30" y="275" width="60" height="58.75" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 304px; margin-left: 31px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">SizeInterval<br/>VDisk2</div></div></div></foreignObject><text x="60" y="308" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">SizeInterv...</text></switch></g><path d="M 130 279.8 L 110 279.8" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 6" pointer-events="stroke"/><path d="M 90 270.62 L 85 270.62 Q 80 270.62 80 280.62 L 80 320.62 Q 80 330.62 75 330.62 L 72.5 330.62 Q 70 330.62 75 330.62 L 77.5 330.62 Q 80 330.62 80 340.62 L 80 380.62 Q 80 390.62 85 390.62 L 90 390.62" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" transform="translate(80,0)scale(-1,1)translate(-80,0)rotate(-90,80,330.62)" pointer-events="all"/><path d="M 310.93 100.93 L 305.93 100.93 Q 300.93 100.93 300.93 110.93 L 300.93 370.93 Q 300.93 380.93 295.93 380.93 L 293.43 380.93 Q 290.93 380.93 295.93 380.93 L 298.43 380.93 Q 300.93 380.93 300.93 390.93 L 300.93 650.93 Q 300.93 660.93 305.93 660.93 L 310.93 660.93" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" transform="translate(300.93,0)scale(-1,1)translate(-300.93,0)rotate(-90,300.93,380.93)" pointer-events="all"/><rect x="270.93" y="390.62" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 406px; margin-left: 272px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">BurstInterval<br/>VDisk2</div></div></div></foreignObject><text x="301" y="409" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">BurstInter...</text></switch></g><path d="M 349.7 110.93 L 344.7 110.93 Q 339.7 110.93 339.7 120.93 L 339.7 420.93 Q 339.7 430.93 334.7 430.93 L 332.2 430.93 Q 329.7 430.93 334.7 430.93 L 337.2 430.93 Q 339.7 430.93 339.7 440.93 L 339.7 740.93 Q 339.7 750.93 344.7 750.93 L 349.7 750.93" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" transform="translate(339.7,0)scale(-1,1)translate(-339.7,0)rotate(-90,339.7,430.93)" pointer-events="all"/><path d="M 627.82 329.83 L 607.82 329.83" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 6" pointer-events="stroke"/><rect x="272.52" y="440.93" width="134.37" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 132px; height: 1px; padding-top: 456px; margin-left: 274px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">StorageDuration VDisk2</div></div></div></foreignObject><text x="340" y="460" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">StorageDuration VDisk2</text></switch></g><rect x="25" y="339.37" width="110" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 354px; margin-left: 26px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">BurstSize VDisk2</div></div></div></foreignObject><text x="80" y="358" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">BurstSize VDisk2</text></switch></g><rect x="580" y="240.62" width="80" height="20" fill="#82b366" stroke="rgb(0, 0, 0)" pointer-events="all"/><rect x="420" y="240.62" width="160" height="20" fill="#d5e8d4" stroke="#000000" pointer-events="all"/><path d="M 290 60.62 L 285 60.62 Q 280 60.62 280 70.62 L 280 190 Q 280 200 275 200 L 272.5 200 Q 270 200 275 200 L 277.5 200 Q 280 200 280 210 L 280 329.37 Q 280 339.37 285 339.37 L 290 339.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" transform="translate(280,0)scale(-1,1)translate(-280,0)rotate(90,280,200)" pointer-events="all"/><rect x="210" y="160.62" width="140" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 138px; height: 1px; padding-top: 176px; margin-left: 211px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Data that is being deleted</div></div></div></foreignObject><text x="280" y="179" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Data that is being dele...</text></switch></g><path d="M 20 239.87 L 678.33 239.87 L 678.33 230.62 L 700 240.62 L 678.33 250.62 L 678.33 241.37 L 20 241.37 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="670" y="190.62" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 206px; margin-left: 671px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Timeline,<br/>bytes</div></div></div></foreignObject><text x="700" y="209" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Timeline,...</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>

{% note info %}

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

{% endnote %}

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

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

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

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

```proto
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 кластера.
