aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbazeltsev <bazeltsev@ydb.tech>2023-02-08 12:55:14 +0300
committerbazeltsev <bazeltsev@ydb.tech>2023-02-08 12:55:14 +0300
commit276e61af9d8785166ff14771a61e0acd8527b282 (patch)
tree93ac0b9d119a5c2339b1566efca8d0e59142df61
parent66c3b6b4a9837176622fe2f2df4282620f8d72bb (diff)
downloadydb-276e61af9d8785166ff14771a61e0acd8527b282.tar.gz
Added actors examples
updated
-rw-r--r--ydb/docs/ru/core/_assets/pdisklogload.drawio1
-rw-r--r--ydb/docs/ru/core/_assets/pdisklogload.svg3
-rw-r--r--ydb/docs/ru/core/_includes/load-actors-params.md1
-rw-r--r--ydb/docs/ru/core/concepts/datamodel/_includes/table.md2
-rw-r--r--ydb/docs/ru/core/development/load-actors-key-value.md2
-rw-r--r--ydb/docs/ru/core/development/load-actors-kqp.md125
-rw-r--r--ydb/docs/ru/core/development/load-actors-memory.md46
-rw-r--r--ydb/docs/ru/core/development/load-actors-overview.md22
-rw-r--r--ydb/docs/ru/core/development/load-actors-pdisk-log.md80
-rw-r--r--ydb/docs/ru/core/development/load-actors-pdisk-read.md71
-rw-r--r--ydb/docs/ru/core/development/load-actors-pdisk-write.md95
-rw-r--r--ydb/docs/ru/core/development/load-actors-stop.md51
-rw-r--r--ydb/docs/ru/core/development/load-actors-storage.md172
-rw-r--r--ydb/docs/ru/core/development/load-actors-vdisk.md4
14 files changed, 321 insertions, 354 deletions
diff --git a/ydb/docs/ru/core/_assets/pdisklogload.drawio b/ydb/docs/ru/core/_assets/pdisklogload.drawio
new file mode 100644
index 0000000000..5c3c75c858
--- /dev/null
+++ b/ydb/docs/ru/core/_assets/pdisklogload.drawio
@@ -0,0 +1 @@
+<mxfile host="Electron" modified="2023-02-02T08:58:52.149Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.8.10 Chrome/106.0.5249.199 Electron/21.3.5 Safari/537.36" etag="LAALob26ouHMXcQx7Ymz" version="20.8.10" type="device"><diagram name="Страница 1" id="1oKlUCA-fBf30r2XWTPk">7VttU6s4FP41/ShDXnj7eFt1r7vrrDu94/24gyW2GSnphlRbf/2GltcktYw2vW4tOgqHEOB5OCfPOYEBGs1Xv/F4MbtlCUkH0E1WA3Q5gBAACAfFr5ust5YgQlvDlNOkbNQYxvSVlEa3tC5pQvJOQ8FYKuiia5ywLCMT0bHFnLOXbrNHlnbPuoinRDOMJ3GqW3/SRMy21hAGjf07odNZdWbgR9s987hqXN5JPosT9tIyoasBGnHGxHZtvhqRtACvwmV73PWOvfWFcZKJPge8us9/3f97M/4x+vb7H6PFLb15jS7KXp7jdFnecHmxYl0hwNkyS0jRiTtAw5cZFWS8iCfF3hfJubTNxDyVW0CuPtI0HbGUcbmdsUw2GuaCsyeiGMvTEi7Iauf9gBol+XgRNieCr2WT8oAK13V386VhKfBK26zFEI5KY1w+GdO65wY8uVLiZ8aSL/5eTa/T+f3t+J9klK+GYEitYjmAyB+FV8PrGjsNKAOcO7HzVPCw6/hQAxAb8IO24ENHgq/7PMo97mYpjxiXZ4uXgh0Ga4x7YR0eE+squr4FtoxXi2J1suTpesjjyRMR+1FvKNpwkNLF93I9jR9IesdyKijLpI1v73NYIEllwP1T2T+nSVJcyzBO6bQwpOSx3f5baa7bGWIPZyIuu7uI3APxGXT5BKGRT2jgMwidwLNFKdQoLUbTm0wQLm0D6KcFeg9crk2LtftLmj8BjXaJguhSagzgBrArniakOOdbTJmeoa5vH4InrxdPvoEnZM3v/P1+R7LkWyFcGmCTOJ/VLtUiprDfxUKCnW0s0EU1XZVYgZpP7oSWJB0ppAPbQs00slY2TlLpdM9dAWWCsjzDHaPySpqxSeFNi4I5W/IJKY9qCx61I7SnIxHzKRFaRxtm69v+ANnBOci+23kjxXmBLu9MERbYGzJDjc3hkudik7JA9+SjKfa6hCDXqVK5Fic1T0cJp7CH5D572K4UIHI8rARIx/f6uVkUOCG0xaquZDae9nWljAe60TDUg+FRZQzsIWPOfreDS0XeXHiu47YXgHu5YJ2cH57dHrrlq4tUX00CvcgJu530lam+mqfoXVkWqlCXNmPBeDwll0u+dYAvIHAi6ISg5Yd+hxUUOVHU9lJd+iDsoOCYUTja76cfqZglMQkfJ29WzA4RD30lS/sE5bGKsv9DKdfvV148binXcik8hEPk+4fBD6ilcP8T4KcrYDv4WfVs9cE0A3tcx7Y8yfDoFT+FnWWiZd8utgEHaig1I35kyL39kJ9YrnCoVCHoR+eRJxqQnvz1mGjQST8Z5ajWqyO9hmLKzj2bHJ1TuL0pHNB4e3cKB9SZBr0ryykc0lO4c5Tt576Ryl3vKGtvsgH3SEDOdBrpRKCZmFjXPJnmKkyU1tno4SnVc6I+Ve0THjcLT1OYwuDXz9HjHsnX2ffMvocjJ+i6nnma0OR6vrWCNu6R9X11NeTjwAlB1CwdGgtiQ9Qqf+L3CSUffuQsljUUxtpjsqMMftJBGToe1DmoArRvnvY/du0b61UF7W2ME2ZJeRkDeVEN/y97GcProVk/S9HXdz9fbdKzXDRPPBIm2HrRt1/VF5gknT1ov56kO9j7Cmp+3P9tZ6tVSE/XdJexiKVFzOJCcdBc/nkgNJvK/wlJiZA0neyAAJUK1I6XnYFpGsveiKALqp1ul0uiUlJK8D6RTflQ4+2vOkz2zddhlWB3HTfAjSwNYYSrJuU3abIFAqEUsNhzo9BFETjQWKQGTM+cAh93LNLrxz/onKRUPvtwpJcqHtaC5KfrXb5aI7RappCbzVeB2+Sm+bYSXf0H</diagram></mxfile> \ No newline at end of file
diff --git a/ydb/docs/ru/core/_assets/pdisklogload.svg b/ydb/docs/ru/core/_assets/pdisklogload.svg
new file mode 100644
index 0000000000..e0eae54ecc
--- /dev/null
+++ b/ydb/docs/ru/core/_assets/pdisklogload.svg
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!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> \ No newline at end of file
diff --git a/ydb/docs/ru/core/_includes/load-actors-params.md b/ydb/docs/ru/core/_includes/load-actors-params.md
new file mode 100644
index 0000000000..063b28fae1
--- /dev/null
+++ b/ydb/docs/ru/core/_includes/load-actors-params.md
@@ -0,0 +1 @@
+Ниже описаны основные параметры актора. Полный список параметров смотрите в файле [load_test.proto](https://github.com/ydb-platform/ydb/blob/main/ydb/core/protos/load_test.proto) Git-репозитория {{ ydb-short-name }}.
diff --git a/ydb/docs/ru/core/concepts/datamodel/_includes/table.md b/ydb/docs/ru/core/concepts/datamodel/_includes/table.md
index 4e3dd5fce3..b30d966294 100644
--- a/ydb/docs/ru/core/concepts/datamodel/_includes/table.md
+++ b/ydb/docs/ru/core/concepts/datamodel/_includes/table.md
@@ -26,7 +26,7 @@
В схеме данных определяются следующие параметры партиционирования таблицы:
-#### AUTO_PARTITIONING_BY_SIZE
+#### AUTO_PARTITIONING_BY_SIZE {#auto-part-by-load}
* Тип: `Enum` (`ENABLED`, `DISABLED`).
* Значение по умолчанию: `ENABLED`.
diff --git a/ydb/docs/ru/core/development/load-actors-key-value.md b/ydb/docs/ru/core/development/load-actors-key-value.md
index f5fa939cc7..925c36340d 100644
--- a/ydb/docs/ru/core/development/load-actors-key-value.md
+++ b/ydb/docs/ru/core/development/load-actors-key-value.md
@@ -4,7 +4,7 @@
{% include notitle [addition](../_includes/addition.md) %}
-## Спецификация актора {#proto}
+## Конфигурация актора {#options}
```proto
message TKeyValueLoad {
diff --git a/ydb/docs/ru/core/development/load-actors-kqp.md b/ydb/docs/ru/core/development/load-actors-kqp.md
index e89db74350..e9e12b673b 100644
--- a/ydb/docs/ru/core/development/load-actors-kqp.md
+++ b/ydb/docs/ru/core/development/load-actors-kqp.md
@@ -1,110 +1,49 @@
# KqpLoad
-Подает нагрузку на слой Query Processor и нагружает все компоненты кластера {{ ydb-short-name }}. Нагрузка, которую генерирует актор, аналогична нагрузке от подкоманды [workload](../reference/ydb-cli/commands/workload/index.md) {{ ydb-short-name }} CLI, но запускается изнутри кластера. Позволяет запускать два типа нагрузки:
+Тестирует производительности кластера {{ ydb-short-name }} в целом, нагружая все компоненты через слой Query Processor. Нагрузка, аналогична нагрузке от подкоманды [workload](../reference/ydb-cli/commands/workload/index.md) {{ ydb-short-name }} CLI, но запускается изнутри кластера.
+
+Вы можете запустить два вида нагрузки:
* **Stock** — симулирует работу склада интернет-магазина: создает заказы из нескольких товаров, получает список заказов по клиенту.
* **Key-value** — использует БД как key-value хранилище.
-Результатом теста является количество успешных транзакций в секунду, количество повторных попыток исполнения транзакций и количество ошибок.
-
-{% include notitle [addition](../_includes/addition.md) %}
-
-## Спецификация актора {#proto}
-
-```proto
-message TKqpLoad {
- 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 IncreaseSessions = 11;
- optional bool DeleteTableOnFinish = 6;
- optional uint32 UniformPartitionsCount = 7;
- optional uint32 WorkloadType = 8;
- oneof Workload {
- TStockWorkload Stock = 9;
- TKvWorkload Kv = 10;
- }
-}
-```
+Перед началом работы создаются необходимые таблицы, после завершения они удаляются.
## Параметры актора {#options}
-Параметр | Описание
---- | ---
-`TStockWorkload[]` | [Параметры нагрузки stock](#stock-workload).
-`TKvWorkload[]` | [Параметры нагрузки key-value](#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` — тип нагрузки Stock;</li><li>`TKvWorkload Kv` — тип нагрузки key-value.</li></ul>
-
-### TStockWorkload {#stock-workload}
-
-Параметр | Описание
---- | ---
-`ProductCount` | Количество видов товаров.<br>Тип: `uint64`.<br>Значение по умолчанию: `100`.<br>Необязательный.
-`Quantity` | Количество товаров каждого вида на складе.<br>Тип: `uint64`.<br>Значение по умолчанию: `1000`.<br>Необязательный.
-`OrderCount` | Первоначальное количество заказов в БД.<br>Тип: `uint64`.<br>Значение по умолчанию: `100`.<br>Необязательный.
-`Limit` | Минимальное количество шардов для таблиц.<br>Тип: `uint64`.<br>Значение по умолчанию: `10`.<br>Необязательный.
-`PartitionsByLoad` | Включение/выключение автошардирования.<br>Тип: `bool`.<br>Значение по умолчанию: `true`.<br>Необязательный.
-
-### TKvWorkload {#kv-workload}
+{% include [load-actors-params](../_includes/load-actors-params.md) %}
Параметр | Описание
--- | ---
-`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>Необязательный.
+`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 секунд. Перед началом работы создаются необходимые таблицы, после завершения они удаляются.
-
-{% list tabs %}
+Следующий актор запускает stock-нагрузку БД `/slice/db`, выполняя простые UPSERT-запросы в `64` потока в течение `30` секунд.
-- Embedded UI
-
- ```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
- }
- }
- ```
+```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
+ }
+}
+```
-{% endlist %}
+Результатом теста является количество успешных транзакций в секунду, количество повторных попыток исполнения транзакций и количество ошибок.
diff --git a/ydb/docs/ru/core/development/load-actors-memory.md b/ydb/docs/ru/core/development/load-actors-memory.md
index f6c559c5dc..81b1f0bd66 100644
--- a/ydb/docs/ru/core/development/load-actors-memory.md
+++ b/ydb/docs/ru/core/development/load-actors-memory.md
@@ -1,43 +1,29 @@
# MemoryLoad
-Тестирует производительность аллокаторов памяти. Аллоцирует блоки памяти указанного размера через заданные промежутки времени.
+Аллоцирует блоки памяти указанного размера через заданные промежутки времени. После снятия нагрузки аллоцированная память освобождается. С помощью этого актора вы можете протестировать работу логики, например срабатывание некоторого триггера при достижении лимита по [RSS]{% if lang == "en" %}(https://en.wikipedia.org/wiki/Resident_set_size){% endif %}{% if lang == "ru" %}(https://ru.wikipedia.org/wiki/Resident_set_size){% endif %}.
-{% include notitle [addition](../_includes/addition.md) %}
+{% note info %}
-## Спецификация актора {#proto}
+Это узкоспециализированный актор для тестирования конкретной функциональности. Не является нагружающим, его назначение — проверка корректности работы.
+
+{% endnote %}
-```proto
-message TMemoryLoad {
- optional uint64 Tag = 1;
- optional uint32 DurationSeconds = 2;
- optional uint64 BlockSize = 3;
- optional uint64 IntervalUs = 4;
-}
-```
-<!--
## Параметры актора {#options}
Параметр | Описание
--- | ---
-`Tag` | Тип: `uint64`.
-`DurationSeconds` | Тип: `uint32`.
-`BlockSize` | Тип: `uint64`.
-`IntervalUs` | Тип: `uint64`.
--->
+`DurationSeconds` | Продолжительность нагрузки в секундах.
+`BlockSize` | Размер аллоцируемого блока в байтах.
+`IntervalUs` | Интервал времени между аллоцированиями блоков в микросекундах.
## Примеры {#examples}
-{% list tabs %}
-
-- CLI
+Следующий актор аллоцирует блоки по `1048576` байт каждые `9000000` микросекунд в течение `3600` секунд и за время работы займет 32 ГБ:
- ```proto
- NodeId: 1
- Event: { MemoryLoad: {
- DurationSeconds: 120
- BlockSize: 4096
- IntervalUs: 1000
- }}
- ```
-
-{% endlist %}
+```proto
+MemoryLoad: {
+ DurationSeconds: 3600
+ BlockSize: 1048576
+ IntervalUs: 9000000
+}
+```
diff --git a/ydb/docs/ru/core/development/load-actors-overview.md b/ydb/docs/ru/core/development/load-actors-overview.md
index 4fe68b9964..197fd9c1b7 100644
--- a/ydb/docs/ru/core/development/load-actors-overview.md
+++ b/ydb/docs/ru/core/development/load-actors-overview.md
@@ -17,6 +17,8 @@
Например, вы можете подать [нагрузку на Distributed Storage](load-actors-storage.md) без задействования слоев таблеток и Query Processor. Таким образом можно изолированно тестировать отдельные слои системы и эффективно находить узкие места. Комбинация акторов разных типов позволяет запускать множество видов нагрузки.
+{% include [release-candidate](../_includes/trunk.md) %}
+
## Типы акторов {#load-actor-type}
Тип | Описание
@@ -28,24 +30,24 @@
[PDiskWriteLoad](load-actors-pdisk-write.md) | Тестирует производительность записи на PDisk.
[PDiskReadLoad](load-actors-pdisk-read.md) | Тестирует производительность чтения с PDisk.
[PDiskLogLoad](load-actors-pdisk-log.md) | Тестирует корректность вырезания из середины лога PDisk.
-[MemoryLoad](load-actors-memory.md) | Тестирует производительность аллокаторов памяти.
-[Stop](load-actors-stop.md) | С помощью этого актора можно остановить все акторы, либо только указанные.
+[MemoryLoad](load-actors-memory.md) | Аллоцирует память, полезен при тестировании логики.
+[Stop](load-actors-stop.md) | Останавливает все акторы, либо только указанные.
## Запуск нагрузки {load-actor-start}
-Вы можете запустить нагрузку следующими способами:
+Запустить нагрузку можно с помощью следующих инструментов:
-* Embedded UI кластера — позволяет создать по спецификации и запустить нагружающий актор либо на текущем узле, либо сразу на всех узлах тенанта.
-* Утилита `ydbd` — позволяет на любой узел кластера отправить спецификацию актора с указанием, на каких узлах необходимо создать и запустить актор.
+* Embedded UI кластера — позволяет создать по конфигурации и запустить нагружающий актор либо на текущем узле, либо сразу на всех узлах тенанта.
+* Утилита `ydbd` — позволяет на любой узел кластера отправить конфигурацию актора с указанием, на каких узлах необходимо создать и запустить актор.
-В качестве примера рассмотрим создание и запуск актора KqpLoad. Актор обращается к БД `/slice/db` как к key-value хранилищу в 64 потока, длительность нагрузки — 30 секунд. Перед началом работы актор создает необходимые таблицы, после окончания удаляет их. При создании актору будет присвоен автоматически сгенерированный тег. Этот же тег будет присвоен и результату теста.
+В качестве примера рассмотрим создание и запуск актора KqpLoad. Актор обращается к БД `/slice/db` как к key-value хранилищу в 64 потока, длительность нагрузки — 30 секунд. Перед началом работы актор создает необходимые таблицы, после окончания удаляет их. При создании актору будет автоматически присвоен тег. Этот же тег будет присвоен и результату теста.
{% list tabs %}
- Embedded UI
1. Откройте страницу управления нагружающими акторами на узле (например, `http://<address>:8765/actors/load`, где `address` — адрес узла кластера, на котором нужно запустить нагрузку).
- 1. В поле ввода/вывода вставьте спецификацию актора:
+ 1. В поле ввода/вывода вставьте конфигурацию актора:
```proto
KqpLoad: {
@@ -82,7 +84,7 @@
- CLI
- 1. Создайте файл со спецификацией актора:
+ 1. Создайте файл с конфигурацией актора:
```proto
NodeId: 1
@@ -118,7 +120,7 @@
...
```
- * `Event` — спецификация актора.
+ * `Event` — конфигурация актора.
1. Запустите актор:
@@ -127,7 +129,7 @@
```
* `endpoint` — grpc-эндпоит узла (например, `grpc://<address>:<port>`, где `address` — адрес узла, `port` — grpc-порт узла).
- * `proto_file` — путь к файлу со спецификацией актора.
+ * `proto_file` — путь к файлу с конфигурацией актора.
{% endlist %}
diff --git a/ydb/docs/ru/core/development/load-actors-pdisk-log.md b/ydb/docs/ru/core/development/load-actors-pdisk-log.md
index 0fcc5c33e5..a2af5e2547 100644
--- a/ydb/docs/ru/core/development/load-actors-pdisk-log.md
+++ b/ydb/docs/ru/core/development/load-actors-pdisk-log.md
@@ -1,34 +1,66 @@
# PDiskLogLoad
-Тестирует вырезание из середины лога PDisk. Не является нагружающим, в первую очередь направлен на тестирование корректности.
+Все VDisk, размещенные на некотором PDisk, пишут данные о своей работе в общий лог PDisk. VDisk постепенно удаляют свои устаревшие данные в начале лога для освобождения места на диске. В некоторых случаях между окончанием записи одного VDisk и началом записи другого может образоваться участок, содержащий ненужные устаревшие данные. Такие данные автоматически удаляются. Корректность этой операции тестирует актор PDiskLogLoad.
-{% include notitle [addition](../_includes/addition.md) %}
+<center>
-## Спецификация актора {#proto}
+![load-actors](../_assets/pdisklogload.svg)
-```proto
-message TPDiskLogLoad {
- 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;
-
- optional uint64 MaxTotalBytesWritten = 8;
- }
+</center>
+
+{% note info %}
+
+Это узкоспециализированный актор для тестирования конкретной функциональности. Не является нагружающим, его назначение — проверка корректности работы.
+
+{% endnote %}
+
+## Параметры актора {#options}
- optional uint64 Tag = 1;
- optional uint32 PDiskId = 2;
- optional uint64 PDiskGuid = 3;
+{% include [load-actors-params](../_includes/load-actors-params.md) %}
- optional uint32 DurationSeconds = 5;
- repeated TWorkerConfig Workers = 7;
+Параметр | Описание
+--- | ---
+`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`.
- optional bool IsWardenlessTest = 8 [default = false];
+## Примеры {#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 кластера.
diff --git a/ydb/docs/ru/core/development/load-actors-pdisk-read.md b/ydb/docs/ru/core/development/load-actors-pdisk-read.md
index a7bfb6467a..849859dd46 100644
--- a/ydb/docs/ru/core/development/load-actors-pdisk-read.md
+++ b/ydb/docs/ru/core/development/load-actors-pdisk-read.md
@@ -1,29 +1,60 @@
# PDiskReadLoad
-Подает на PDisk нагрузку read-only. Имитирует VDisk. Актор создает на указанном PDisk чанки, записывает в них случайные данные и выполняет чтение из них с указанными параметрами. Результатом теста является производительность чтения в байтах в секунду.
+Тестирует производительность чтения с PDisk. Нагрузка подается от имени VDisk. Актор создает на указанном PDisk чанки, записывает в них случайные данные и выполняет чтение из них с указанными параметрами. После снятия нагрузки записанные актором данные удаляются.
-{% include notitle [addition](../_includes/addition.md) %}
+Вы можете подать нагрузку двух видов:
-## Спецификация актора {#proto}
+* _Постоянная_ — актор следит, чтобы одновременно было запущено указанное число запросов. Чтобы подать постоянную нагрузку, задайте нулевую паузу между запросами (например, `IntervalMsMin: 0`, `IntervalMsMax: 0`) и отличный от нуля `InFlightReads`.
+* _Интервальная_ — актор запускает запросы через заданные промежутки времени. Чтобы подать интервальную нагрузку, задайте ненулевую паузу между запросами (например, `IntervalMsMin: 10`, `IntervalMsMax: 100`). Максимальное количество одновременно выполняемых запросов задается параметром `InFlightReads`. Если его значение равно `0`, то ограничения нет.
+
+## Параметры актора {#options}
+
+{% include [load-actors-params](../_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>
+`Chunks` | Параметры чанка.<br>`Slots` — количество слотов в чанке, определяет размер записи.<br>Вы можете указать несколько `Chunks`, и тогда выбор конкретного чанка для чтения будет определяться его `Weight`.
+`DurationSeconds` | Продолжительность нагрузки в секундах.
+`IntervalMsMin`,<br>`IntervalMsMax` | Минимальный и максимальный промежутки времени между запросами при интервальной нагрузке в миллисекундах. Значение промежутка выбирается случайно из указанного диапазона.
+`InFlightReads` | Количество одновременно обрабатываемых запросов на чтение.
+`Sequential` | Тип чтения.<ul><li>`True` — последовательное.</li><li>`False` — случайное.</li></ul>
+`IsWardenlessTest` | Если PDiskReadLoad запускается на кластере, укажите `False`. Иначе (например, при запуске в юнит-тестах) укажите `True`.
+
+## Примеры {#examples}
+
+Следующий актор читает данные блоками по `32` МБ, в течение `120` секунд, одновременно выполняются `64` запроса (постоянная нагрузка):
```proto
-message TPDiskReadLoad {
- message TChunkInfo {
- optional uint32 Slots = 1; // number of slots per chunk
- optional uint32 Weight = 2; // probability weight
+PDiskReadLoad: {
+ PDiskId: 1000
+ PDiskGuid: 2258451612736857634
+ VDiskId: {
+ GroupID: 11234
+ GroupGeneration: 5
+ Ring: 1
+ Domain: 1
+ VDisk: 3
}
- 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 InFlightReads = 7;
- optional bool Sequential = 9 [default = false];
-
- optional uint32 IntervalMsMin = 10;
- optional uint32 IntervalMsMax = 11;
-
- optional bool IsWardenlessTest = 13 [default = false];
+ Chunks: { Slots: 4096 Weight: 1 }
+ Chunks: { Slots: 4096 Weight: 1 }
+ Chunks: { Slots: 4096 Weight: 1 }
+ Chunks: { Slots: 4096 Weight: 1 }
+ Chunks: { Slots: 4096 Weight: 1 }
+ Chunks: { Slots: 4096 Weight: 1 }
+ Chunks: { Slots: 4096 Weight: 1 }
+ Chunks: { Slots: 4096 Weight: 1 }
+ DurationSeconds: 120
+ IntervalMsMin: 0
+ IntervalMsMax: 0
+ InFlightReads: 64
+ Sequential: false
+ IsWardenlessTest: false
}
```
+
+При просмотре результата тестирования наибольший интерес представляет следующее значение:
+
+* `Average speed since start` — средняя скорость чтения с момента запуска в МБ/с, например `1257.148154`.
diff --git a/ydb/docs/ru/core/development/load-actors-pdisk-write.md b/ydb/docs/ru/core/development/load-actors-pdisk-write.md
index 9a31655663..34e9e65931 100644
--- a/ydb/docs/ru/core/development/load-actors-pdisk-write.md
+++ b/ydb/docs/ru/core/development/load-actors-pdisk-write.md
@@ -1,42 +1,33 @@
# PDiskWriteLoad
-Подает на PDisk нагрузку write-only. Имитирует VDisk. Актор создает на указанном PDisk чанки и записывает в них случайные данные с указанными параметрами. Результатом теста является производительность записи в байтах в секунду.
+Тестирует производительность записи на PDisk. Нагрузка подается от имени VDisk. Актор создает на указанном PDisk чанки и записывает в них случайные данные. После снятия нагрузки записанные актором данные удаляются.
-{% include notitle [addition](../_includes/addition.md) %}
+Вы можете подать нагрузку двух видов:
-## Спецификация актора {#proto}
+* _Постоянная_ — актор следит, чтобы одновременно было запущено указанное число запросов. Чтобы подать постоянную нагрузку, задайте нулевую паузу между запросами (например, `IntervalMsMin: 0`, `IntervalMsMax: 0`) и отличный от нуля `InFlightWrites`.
+* _Интервальная_ — актор запускает запросы через заданные промежутки времени. Чтобы подать интервальную нагрузку, задайте ненулевую паузу между запросами (например, `IntervalMsMin: 10`, `IntervalMsMax: 100`). Максимальное количество одновременно выполняемых запросов задается параметром `InFlightWrites`. Если его значение равно `0`, то ограничения нет.
-<!--
-```proto
-enum ELogMode {
- LOG_PARALLEL = 1;
- LOG_SEQUENTIAL = 2;
- LOG_NONE = 3;
-}
-message TPDiskWriteLoad {
- 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];
-}
-```
--->
+## Параметры актора {#options}
-```proto
-enum ELogMode {
+{% include [load-actors-params](../_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>
+`Chunks` | Параметры чанка.<br>`Slots` — количество слотов в чанке, определяет размер записи.<br>Вы можете указать несколько `Chunks`, и тогда выбор конкретного чанка для записи будет определяться его `Weight`.
+`DurationSeconds` | Продолжительность нагрузки в секундах.
+`IntervalMsMin`,<br>`IntervalMsMax` | Минимальный и максимальный промежутки времени между запросами при интервальной нагрузке в миллисекундах. Значение промежутка выбирается случайно из указанного диапазона.
+`InFlightWrites` | Количество одновременно обрабатываемых запросов на запись.
+`LogMode` | Режим записи лога. В режиме `LOG_SEQUENTIAL` сначала происходит запись в чанк, а после ее подтверждения запись — в лог.
+`Sequential` | Тип записи.<ul><li>`True` — последовательная.</li><li>`False` — случайная.</li></ul>
+`IsWardenlessTest` | Если PDiskReadLoad запускается на кластере, укажите `False`. Иначе (например, при запуске в юнит-тестах) укажите `True`.
+
+<!--
+Параметр | Описание
+--- | ---
+`LogMode` | {
LOG_PARALLEL = 1; // Писать в чанк и писать в лог (о факте записи) параллельно, и считать запись завершенной только если обе записи прошли
LOG_SEQUENTIAL = 2; // Писать сначала в чанк, потом в лог. Считать запись завершенной после записи в лог
LOG_NONE = 3;
@@ -70,3 +61,41 @@ message TPDiskWriteLoad {
optional bool IsWardenlessTest = 13 [default = false]; // позволяет использовать в тестах, где нет NodeWarden
}
```
+ -->
+
+## Примеры {#example}
+
+Следующий актор пишет данные блоками по `32` МБ, в течение `120` секунд, одновременно выполняются `64` запроса (постоянная нагрузка):
+
+```proto
+PDiskWriteLoad: {
+ PDiskId: 1000
+ PDiskGuid: 2258451612736857634
+ VDiskId: {
+ GroupID: 11234
+ GroupGeneration: 5
+ Ring: 1
+ Domain: 1
+ VDisk: 3
+ }
+ Chunks: { Slots: 4096 Weight: 1 }
+ Chunks: { Slots: 4096 Weight: 1 }
+ Chunks: { Slots: 4096 Weight: 1 }
+ Chunks: { Slots: 4096 Weight: 1 }
+ Chunks: { Slots: 4096 Weight: 1 }
+ Chunks: { Slots: 4096 Weight: 1 }
+ Chunks: { Slots: 4096 Weight: 1 }
+ Chunks: { Slots: 4096 Weight: 1 }
+ DurationSeconds: 120
+ IntervalMsMin: 0
+ IntervalMsMax: 0
+ InFlightWrites: 64
+ LogMode: LOG_SEQUENTIAL
+ Sequential: false
+ IsWardenlessTest: false
+}
+```
+
+При просмотре результата тестирования наибольший интерес представляют следующее значение:
+
+* `Average speed since start` — средняя скорость записи с момента запуска в МБ/с, например `615.484013`.
diff --git a/ydb/docs/ru/core/development/load-actors-stop.md b/ydb/docs/ru/core/development/load-actors-stop.md
index cf3e9db082..ad1e5bbf97 100644
--- a/ydb/docs/ru/core/development/load-actors-stop.md
+++ b/ydb/docs/ru/core/development/load-actors-stop.md
@@ -1,49 +1,28 @@
# Stop
-С помощью этого актора можно остановить все или только указанные акторы.
-
-## Спецификация актора {#proto}
-
-```proto
-message TStop {
- optional uint64 Tag = 1;
- optional bool RemoveAllTags = 2;
-}
-```
+С помощью этой команды можно остановить всю или только указанную нагрузку.
## Параметры актора {#options}
Параметр | Описание
--- | ---
-`Tag` | Тег нагрузки, может быть задан для остановки конкретной нагрузки. Тег можно посмотреть в Embedded UI.<br>Тип: `uint64`.
-`RemoveAllTags` | Остановить все нагрузочные акторы на узле.<br>Тип: `bool`.
+`Tag` | Тег нагружающего актора, который нужно остановить. Тег можно посмотреть в Embedded UI кластера.
+`RemoveAllTags` | При значении параметра `True` будут остановлены все нагружающие акторы.
## Примеры {#examples}
-{% list tabs %}
-
-- CLI
-
- Спецификация актора для остановки нагрузки с тегом `123` на узле с идентификатором `1`:
+Следующая команда остановит нагрузку с тегом `123`:
- ```proto
- NodeId: 1
- Event: {
- Stop: {
- Tag: 123
- }
- }
- ```
-
- Спецификация актора для остановки всей нагрузки на узле с идентификатором `1`:
+```proto
+Stop: {
+ Tag: 123
+}
+```
- ```proto
- NodeId: 1
- Event: {
- Stop: {
- RemoveAllTags: true
- }
- }
- ```
+Команда для остановки всей нагрузки:
-{% endlist %}
+```proto
+Stop: {
+ RemoveAllTags: true
+}
+```
diff --git a/ydb/docs/ru/core/development/load-actors-storage.md b/ydb/docs/ru/core/development/load-actors-storage.md
index 7a5a91c1be..f7f5198223 100644
--- a/ydb/docs/ru/core/development/load-actors-storage.md
+++ b/ydb/docs/ru/core/development/load-actors-storage.md
@@ -1,114 +1,78 @@
# StorageLoad
-Нагружает Distributed Storage без задействования слоев таблеток и Query Processor. Результатом теста является производительность записи на Distributed Storage в блобах в секунду.
+Тестирует производительность записи и чтения с Distributed Storage. Нагрузка подается непосредственно на Distributed Storage без задействования слоев таблеток и Query Processor. При тестировании производительности записи актор записывает данные в указанную группу VDisk. Для тестирования чтения актор предварительно записывает данные в указанную группу VDisk, а потом читает их. После снятия нагрузки все данные, записанные актором, удаляются.
-{% include notitle [addition](../_includes/addition.md) %}
+Вы можете подать нагрузку двух видов:
-## Спецификация актора {#proto}
+* _Постоянная_ — актор следит, чтобы одновременно было запущено указанное число запросов. Чтобы подать постоянную нагрузку, задайте нулевую паузу между запросами (например, `WriteIntervals: { Weight: 1.0 Uniform: { MinUs: 0 MaxUs: 0 } }`) и отличный от нуля `MaxInFlightWriteRequests`.
+* _Интервальная_ — актор запускает запросы через заданные промежутки времени. Чтобы подать интервальную нагрузку, задайте ненулевую паузу между запросами (например, `WriteIntervals: { Weight: 1.0 Uniform: { MinUs: 50000 MaxUs: 50000 } }`). Максимальное число одновременно выполняемых запросов задается параметром `InFlightReads`. Если его значение равно `0`, то ограничения нет.
+
+## Параметры актора {#options}
+
+{% include [load-actors-params](../_includes/load-actors-params.md) %}
+
+Параметр | Описание
+--- | ---
+` DurationSeconds` | Продолжительность нагрузки.
+` Tablets` | Нагрузка подается от имени таблетки со следующими реквизитами:<ul><li>` TabletId` — идентификатор таблетки. Должен быть уникальным для каждого нагружающего актора.</li><li>` Channel` — канал таблетки.</li><li>` GroupId` — идентификатор группы VDisk'ов, на которую будет подана нагрузка.</li><li>` Generation` — поколение таблетки.</li></ul>
+` WriteSizes` | Размер записываемых данных. Для каждого запроса выбирается случайным образом из интервала `Min`-`Max`. Вы можете задать несколько диапазонов `WriteSizes`, и тогда выбор значения из конкретного диапазона будет определяться его `Weight`.
+` WriteIntervals` | Пауза между запросами для интервальной нагрузки в микросекундах. Для каждого запроса выбирается случайным образом из интервала `MinUs`-`MaxUs`. Вы можете задать несколько диапазонов `WriteIntervals`, и тогда выбор значения из конкретного диапазона будет определяться его `Weight`.
+` MaxInFlightWriteRequests` | Максимальное количество одновременно обрабатываемых запросов на запись.
+` ReadSizes` | Размер читаемых данных. Для каждого запроса выбирается случайным образом из интервала `Min`-`Max`. Вы можете задать несколько диапазонов `ReadSizes`, и тогда выбор значения из конкретного диапазона будет определяться его `Weight`.
+` ReadIntervals` | Пауза между запросами для интервальной нагрузки в микросекундах. Для каждого запроса выбирается случайным образом из интервала `MinUs`-`MaxUs`. Вы можете задать несколько диапазонов `ReadIntervals`, и тогда выбор значения из конкретного диапазона будет определяться его `Weight`.
+` MaxInFlightReadRequests` | Максимальное количество одновременно обрабатываемых запросов на чтение.
+` FlushIntervals` | Интервал времени между запросами на удаление записанных StorageLoad данных в микросекундах. Выбирается случайным образом из интервала `MinUs`-`MaxUs`. Вы можете задать несколько диапазонов `FlushIntervals`, и тогда выбор значения из конкретного диапазона будет определяться его `Weight`.
+` PutHandleClass` | Класс записи данных в дисковую подсистему. В случае `TabletLog` запись выполняется с максимальным приоритетом.
+` GetHandleClass` | Класс чтения данных с дисковой подсистемы. В случае `FastRead` чтение выполняется с максимальной скоростью.
+
+## Примеры {#examples}
+
+### Нагрузка на запись {#write}
+
+Следующий актор будет писать в группу с идентификатором `2181038080` в течение `60` секунд. Размер одной записи `4096` байт, число одновременно выполняемых запросов не более `256` (постоянная нагрузка):
```proto
-message TStorageLoad {
- message TRequestInfo {
- optional float SendTime = 1;
- optional uint64 Type = 2;
- optional uint32 Size = 3;
- optional NKikimrBlobStorage.EPutHandleClass PutHandleClass = 4;
+StorageLoad: {
+ DurationSeconds: 60
+ Tablets: {
+ Tablets: { TabletId: 1000 Channel: 0 GroupId: 2181038080 Generation: 1 }
+ WriteSizes: { Weight: 1.0 Min: 4096 Max: 4096 }
+ WriteIntervals: { Weight: 1.0 Uniform: { MinUs: 0 MaxUs: 0 } }
+ MaxInFlightWriteRequests: 256
+ FlushIntervals: { Weight: 1.0 Uniform: { MinUs: 10000000 MaxUs: 10000000 } }
+ PutHandleClass: TabletLog
}
- 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;
+}
+```
+
+При просмотре результата тестирования наибольший интерес представляют следующие значения:
+
+* ` Writes per seconds` — количество записей в секунду, например `28690.29`.
+* ` Speed@ 100%` — 100 перцентиль скорости записи в МБ/с, например `108.84`.
+
+### Нагрузка на чтение {#read}
+
+Чтобы подать нагрузку на чтение, необходимо сначала записать данные. Данные записываются запросами по `4096` байт каждые `50` мс, при этом число одновременно выполняемых запросов не более `1` (интервальная нагрузка). Если запрос не успеет завершиться за `50` мс, актор дождется его завершения и через `50` мс запустит следующий запрос. Данные старше `10` с удаляются. Чтение данных выполнятся запросами по `4096` байт, число одновременно выполняемых запросов `16` (постоянная нагрузка):
+
+```proto
+StorageLoad: {
+ DurationSeconds: 60
+ Tablets: {
+ Tablets: { TabletId: 5000 Channel: 0 GroupId: 2181038080 Generation: 1 }
+ WriteSizes: { Weight: 1.0 Min: 4096 Max: 4096}
+ WriteIntervals: { Weight: 1.0 Uniform: { MinUs: 50000 MaxUs: 50000 } }
+ MaxInFlightWriteRequests: 1
+
+ ReadSizes: { Weight: 1.0 Min: 4096 Max: 4096 }
+ ReadIntervals: { Weight: 1.0 Uniform: { MinUs: 0 MaxUs: 0 } }
+ MaxInFlightReadRequests: 16
+ FlushIntervals: { Weight: 1.0 Uniform: { MinUs: 10000000 MaxUs: 10000000 } }
+ PutHandleClass: TabletLog
+ GetHandleClass: FastRead
}
- 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 NKikimrBlobStorage.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 NKikimrBlobStorage.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}`.
-
-{% list tabs %}
-
-- CLI
-
- ```proto
- NodeId: ${NODEID}
- Event: { StorageLoad: {
- DurationSeconds: ${DURATION}
- ScheduleThresholdUs: 0
- ScheduleRoundingUs: 0
- Tablets: {
- Tablets: { TabletId: ${TABLETID} Channel: 0 GroupId: ${GROUPID} Generation: 1 }
- Sizes: { Weight: 1.0 Min: ${SIZE} Max: ${SIZE} }
- WriteIntervals: { Weight: 1.0 Uniform: { MinUs: 50000 MaxUs: 50000 } }
- MaxInFlightRequests: 1
-
- ReadSizes: { Weight: 1.0 Min: ${SIZE} Max: ${SIZE} }
- ReadIntervals: { Weight: 1.0 Uniform: { MinUs: ${INTERVAL} MaxUs: ${INTERVAL} } }
- MaxInFlightReadRequests: ${IN_FLIGHT}
- FlushIntervals: { Weight: 1.0 Uniform: { MinUs: 10000000 MaxUs: 10000000 } }
- PutHandleClass: ${PUT_HANDLE_CLASS}
- GetHandleClass: ${GET_HANDLE_CLASS}
- Soft: true
- }
- }}
- ```
-
-{% endlist %}
-
-**Пишущая нагрузка**
-
-Пишет в группу `$GROUPID` нагрузку длительностью `$DURATION` секунд. Пишет размерами `$SIZE`, ограничивая количество запросов в полете числом `$IN_FLIGHT`.
-
-{% list tabs %}
-
-- CLI
-
- ```proto
- NodeId: ${NODEID}
- Event: { StorageLoad: {
- DurationSeconds: ${DURATION}
- ScheduleThresholdUs: 0
- ScheduleRoundingUs: 0
- Tablets: {
- Tablets: { TabletId: ${TABLETID} Channel: 0 GroupId: ${GROUPID} Generation: 1 }
- Sizes: { Weight: 1.0 Min: ${SIZE} Max: ${SIZE} }
- WriteIntervals: { Weight: 1.0 Uniform: { MinUs: ${INTERVAL} MaxUs: ${INTERVAL} } }
- MaxInFlightRequests: ${IN_FLIGHT}
- FlushIntervals: { Weight: 1.0 Uniform: { MinUs: 10000000 MaxUs: 10000000 } }
- PutHandleClass: ${PUT_HANDLE_CLASS}
- Soft: true
- }
- }}
- ```
-
-{% endlist %}
- -->
+
+При просмотре результата тестирования наибольший интерес представляют следующие значение:
+
+* ` ReadSpeed@ 100%` — 100 перцентиль скорости чтения МБ/с, например `60.86`.
diff --git a/ydb/docs/ru/core/development/load-actors-vdisk.md b/ydb/docs/ru/core/development/load-actors-vdisk.md
index b592230b0b..abcd06d003 100644
--- a/ydb/docs/ru/core/development/load-actors-vdisk.md
+++ b/ydb/docs/ru/core/development/load-actors-vdisk.md
@@ -1,10 +1,10 @@
# VDiskLoad
-Подает на VDisk нагрузку write-only. Имитирует Distributed Storage Proxy. Результатом теста является производительность записи в операциях в секунду.
+Подает нагрузку write-only на VDisk. Имитирует Distributed Storage Proxy. Результатом теста является производительность записи в операциях в секунду.
{% include notitle [addition](../_includes/addition.md) %}
-## Спецификация актора {#proto}
+## Параметры актора {#options}
```proto
message TVDiskLoad {