Fio ááŸáá·áº etcd á¡ááŒá±á¬ááºáž áá¬ááºáááºážááá¯
Cluster á
áœááºážáá±á¬ááºáááº
fio --rw=write --ioengine=sync --fdatasync=1 --directory=test-data --size=22m --bs=2300 --name=mytest
ááááºáá»á¬ážááá¯ááŒáá·áºááŸá¯ááŒá®áž ááŒá¬áá»áááºá 99th áá¬ááá¯ááºááŸá¯ááºážááᯠá
á
áºáá±ážááẠááá¯á¡ááºáá«áááºá
sync (usec): min=534, max=15766, avg=1273.08, stdev=1084.70
sync percentiles (usec):
| 1.00th=[ 553], 5.00th=[ 578], 10.00th=[ 594], 20.00th=[ 627],
| 30.00th=[ 709], 40.00th=[ 750], 50.00th=[ 783], 60.00th=[ 1549],
| 70.00th=[ 1729], 80.00th=[ 1991], 90.00th=[ 2180], 95.00th=[ 2278],
| 99.00th=[ 2376], 99.50th=[ 9634], 99.90th=[15795], 99.95th=[15795],
| 99.99th=[15795]
ááŸááºá á¯
- áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·á áá®ážááŒá¬ážá¡ááŒá±á¡áá±á¡ááœáẠ--size ááŸáá·áº --bs ááœá±ážáá»ááºááŸá¯áá»á¬ážááᯠá
áááºááŒáá¯ááºááŒááºáááºáá¬ážáá«áááºá fio á០á¡áá¯á¶ážáááºáá±á¬ááááºáá
áºáá¯ááááºá ááá·áºááá¯ááºááá¯ááºáááºááá¯ážáá»á¬ážááᯠáá±ážáá«á áá°ááá¯á·ááá¯áááºááŸá¬áááá¯ááºááá²á áááºáá«á
fio ááᯠáááºááᯠconfigure áá¯ááºáááá² . - á ááºážáááºáá±á ááºá¡ááœááºáž I/O load áá»á¬ážá¡á¬ážáá¯á¶ážááẠfio á០áá¬áá«áááºá áááºááœá±á·ááá¡ááŒá±á¡áá±ááœááºá wal_fsync_duration_seconds ááŸáá·áº áááºáááºááá·áº ááá¯ááŸá±á¬ááºááŸá¯ááŸááœá²á á¡ááŒá¬áž á á¬áá±ážáá±á¬ááºážááá¯ááŸá¯áá»á¬áž áááºáá¬ááá¯ááºááœááºááŸááááºá á¡ááá¯áááºááẠwal_fsync_duration_seconds ááááºááá¯ážááᯠááá¯ážá á±áááá·áºáááºá ááá¯á·ááŒá±á¬áá·áº 99th percentile ááẠ10ms ááŸáá·áºáá®ážáá«áá áááºáááá¯ááŸá±á¬ááºááŸá¯ááŸá¬ á¡ááŸáááºáá¯ááºááœá¬ážáá«ááŒá®á
- áá¬ážááŸááºážáá°áá«á
fio 3.5 áááºááááá·áº (ááááºá fdatasync ááŒá¬áá»ááẠáá¬ááá¯ááºááŸá¯ááºážáá»á¬ážááᯠáááŒáá«)á - á¡áááºááœáẠfio á០ááááºáá»á¬ážá á¡ááá¯á¡ááœá¬áá»áŸáá¬ááŒá áºáááºá
Fio ááŸáá·áº etcd á¡ááŒá±á¬ááºážááŸááºáá»á¬ážáá±á¬áá¬ááºáááºáž
etcd ááŸá¬ WAL ááá¯áá¬áá¬áá²
á¡áá»á¬ážá¡á¬ážááŒáá·áºáá±á¬á· databases ááœá±ááᯠáá¯á¶ážáá«áááºá
áááá¯ááºážááá·áºáá
áºáŠážááẠáá±á¬á·áááºááá¯ážá
ááá¯ážááá¯ááºááá¯á· áá±á¬á·áá
áºáá¯ááá·áºááá·áºá¡áá« ááá¯á·ááá¯áẠááŸáááŒá®ážáá¬ážáá±á¬á·áááºááá¯ážááᯠá¡ááºááááºáá¯ááºááá·áºá¡áá«á ááŒá²ááŒá²ááá¯ááŸá±á¬ááºááŸá¯ááœáẠáá¯á¶ááŸááºááá¯ááºáá
áºáá¯ááŒá
áºááá·áº WAL ááœáẠáá¯ááºáá±á¬ááºáá»ááºááᯠááŸááºáááºážáááºáá«áááºá etcd áá¯ááºáááºážá
ááºááᯠáááºáááºááá¯ááºáá±á¬ááºáá® WAL entry á¡ááŸááºáááẠááŒá
áºááœá¬ážááŒá±á¬ááºáž áá±áá»á¬á
á±ááááºá Linux ááœááºá á
áá
áºáá±á«áºááá¯ááŸá¯áá
áºáá¯ááẠáááºážá¡ááœáẠááá¯á¶áá±á¬ááºáá«á
21:23:09.894875 lseek(8, 0, SEEK_CUR) = 12808 <0.000012>
21:23:09.894911 write(8, ". 20210220361223255266632$10 20103026"34"rn3fo"..., 2296) = 2296 <0.000130>
21:23:09.895041 fdatasync(8) = 0 <0.008314>
áá¶ááá±á¬ááºážá
áœá¬áá²á áááºááá¯ááºááá¯ááŸá±á¬ááºááŸá¯ááá¯á· á
á¬áá±ážááŒááºážááẠáá»ááºáá»ááºážáááŒá
áºáá«á fdatasync áá±á«áºááá¯ááŸá¯ ááŸá±ážáá±áá«áá etcd á
áá
áºá á
áœááºážáá±á¬ááºáááºááᯠááááá¯ááºá
á±áá«áááºá
fio ááŒáá·áº ááá¯ááŸá±á¬ááºááŸá¯ááᯠááá·áºááŸááºážááŒááºážá
áááºáááá¯ááŸá±á¬ááºááŸá¯ááẠetcd á¡ááœáẠááá·áºáá»á±á¬áºááŸá¯ááŸááááŸá á¡áá²ááŒááºááẠááá¯á¡ááºáá«áá á¡ááœááºáá¬áááºááŒá®ážáá±á¬ I/O load testing tool ááŒá áºáá±á¬ fio ááᯠá¡áá¯á¶ážááŒá¯áá«á áá áºááºáá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááẠá¡ááœááºááœá²ááŒá¬ážááá¯ááºáááº- synchronous ááŸáá·áº asynchronous á system calls á¡áá»áá¯ážá¡á á¬ážáá»á¬ážá áœá¬ á áááºááá¯á·ááᯠááŸááºáá¬ážáá¬ážááá·áºáááºá ááááºá¡áá±ááŒáá·áº fio ááᯠá¡áá¯á¶ážááŒá¯ááẠá¡ááœááºáááºáá²áá«áááºá áááºážááœáẠááá·áºáááºáá»ááºáá»á¬ážáá»á¬ážá áœá¬ááŸáááŒá®áž áááºážááá¯á·ááááºááá¯ážáá»á¬áž ááœá²ááŒá¬ážáá±á¬áá±á«ááºážá ááºááŸá¯áá»á¬ážááẠá¡ááœááºááœá²ááŒá¬ážááŒá¬ážáá¬ážáá±á¬ I/O á¡áá¯ááºáá¬áááºáá»á¬ážááᯠáá¯ááºáá±ážáá«áááºá etcd á¡ááœáẠáá¯á¶áá±á¬ááºáá±á¬ ááááºážááááºážáá»á¬áž ááááºá WAL ááá¯ááºáá»á¬ážááᯠáá±ážáá¬ážááá·áºá¡áá« fio á០á ááºážáááºáá±ážááá·áºáááºááẠetcd á០á¡ááŸááºáááẠload ááŸáá·áº á¡áá®ážá ááºáá¯á¶ážááŒá áºááŒá±á¬ááºáž áá±áá»á¬á á±ááá·áºáá«áááºá
ááá¯á·ááŒá±á¬áá·áºá fio ááẠá¡áááºážáá¯á¶ážá¡á¬ážááŒáá·áº ááá¯ááºááá¯á· áááºááá¯ááºáá±ážááá¯ááºááá·áº á
á®ážáá®ážáá¯á¶á
á¶ááŒáá·áº load áá
áºáá¯ááᯠáááºáá®ážááá·áºáááºá á
á¬áá
áºáá¯á
á®ááẠá
áá
áºáá±á«áºááá¯ááŸá¯áá
áºáᯠáá«áááºáááºááŒá
áºáááºá
áá¬ááŒá±á¬áá·áº áááááá»áá» fio áá²á· á¡á²áá«ááᯠáá°áá±á¬ááºááá¯á· áááºáá°áá²á·ááá²á
áá®ááá¯á·á
áºááŸá¬áá±á¬á· áááá·áºááŒá
áºáááºááŸááºááᯠáá±á¬áºááŒáá±ážááá¯ááºáá«áááºá áá»áœááºá¯ááºááá¯á·ááœáẠá¡á
á¯á¡ááœá²á·áá
áºáá¯ááŸááááºá
áá«áá±ááá·áº áá®á¡ááœáẠááŒá¿áá¬ááŸá
áºáá¯ááᯠááŒá±ááŸááºážááááºá ááááŠážá
áœá¬á WAL ááá¯á·á
á¬áá±ážáá±á¬á¡áá« etcd áááºáá®ážáá±ážáá±á¬ I/O load ááẠá¡áááºá¡áá¬ááŸáá·áºáá°ááááºážá áááºááá·áºá
áá
áºáá±á«áºááá¯ááŸá¯áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááááºážá ááŸááºáááºážááœá±áá²á· á¡ááœááºá¡á
á¬ážá áááºáá±á¬ááºáá²á áá¯áááá áá»áœááºá¯ááºááá¯á·ááẠá€áá±ážááœááºážáá»á¬ážááá¯ááŒá±ááá¯áá«áá á¡áá¬ážáá°á¡áá¯ááºáá¬áááºááᯠfio ááŸáá·áº áááºááá¯á·ááŒááºáááºáá¯ááºáá¯ááºáááºáááºážá fio ááẠááœá±ážáá»ááºá
áá¬áá»á¬ážá
áœá¬ááŸááá±á¬ á¡ááœááºááŒá±á¬ááºážááœááºááŒááºááœááºááŸááá±á¬áááááá¬áá
áºáá¯ááŒá
áºáááºááᯠááá±á·áá«ááŸáá·áºá ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á áá»ááºážáááºááŸá¯áá
áºáá¯áááºážááœáẠááŒá¿áá¬ááŸá
áºáá¯áá¯á¶ážááᯠááŒá±ááŸááºážáá²á·áááºá
á¡á á¯á¡áá±ážááœáẠload áááŸááá±á¬á¡áá« Kubernetes á¡ááœáẠetcd áá¬áá¬ááᯠááŸá¬ááœá±ááẠstrace ááᯠáŠážá áœá¬á¡áá¯á¶ážááŒá¯áá²á·áááºá WAL ááŸááºáááºážá¡á¬ážáá¯á¶ážáá®ážáá«ážááẠáá°áá®áá±á¬á¡ááœááºá¡á á¬ážááŒá áºáááº- 2200-2400 bytes ááŸáááŒá±á¬ááºáž áá»áœááºá¯ááºááá¯á·ááœá±á·ááŒááºáá²á·ááááºá ááá¯á·ááŒá±á¬áá·áºá ááá¯á·á áºáá¡á ááŸá command ááœááºá parameter -bs=2300 (bs ááẠfio entry áá áºáá¯á á®á¡ááœáẠbytes á¡ááœááºá¡á á¬ážááᯠááá¯ááá¯áááº)á etcd ááá·áºááœááºážááŸá¯á á¡ááœááºá¡á á¬ážááẠetcd áá¬ážááŸááºážá ááŒáá·áºááŒá°ážááŸá¯á ááá·áºáááºáááºááá¯ážáá»á¬áž á áááºááá¯á·á¡áá±á«áº áá°áááºááŒá®áž fdatasync ááŒá¬áá»áááºá¡áá±á«áº áááºáá±á¬ááºááŸá¯ááŸáááŒá±á¬ááºáž áááááŒá¯áá«á ááá·áºááœáẠá¡áá¬ážáá°á¡ááŒá±á¡áá±áá»áá¯ážááŸááá«áá áá¶áá«ááºá¡ááá¡áá»ááá¯ááááŸáááá¯ááºááẠáááºá etcd áá¯ááºáááºážá ááºáá»á¬ážááᯠááŒá±áá¬áá¶á á áºáá±ážáá«á
ááá¯á·áá±á¬ááºááœááºá etcd ááá¯ááºá áá áºáá¯ááºáá±á¬ááºáá±áá¯á¶ááᯠáá±á¬ááºážáá±á¬ááºážáá¬ážáááºáááºá áááºážááᯠstrace ááŸáá·áº -ffttT ááœá±ážáá»ááºááŸá¯áá»á¬ážááŒáá·áº á áááºáá²á·áááºá ááá¯á·ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠááá±ážáá¯ááºáááºážá ááºáá»á¬ážááᯠáááºážá á áºááŒá®áž áááºážááá¯á·áá áºáŠážá á®á á¡ááœááºááᯠáá®ážááŒá¬ážááá¯ááºáá áºáá¯ááœáẠááŸááºáááºážáááºáᬠá áá áºáá±á«áºááá¯ááŸá¯áá áºáá¯á á®á á áááºáá»áááºááŸáá·áº ááŒá¬áá»áááºááŸáá·áºáááºáááºááá·áº á¡áá±ážá áááºá¡á á®áááºáá¶á á¬áá»á¬ážááá¯áááºáž ááá°áá¬ážáá«áááºá áááºážááŒá±á¬ááºážááœááºááŸáááŸá¯á¡áá±á«áº áá»áœááºá¯ááºááá¯á·áááœá²ááŒááºážá áááºááŒá¬ááŸá¯ááᯠá¡áááºááŒá¯ááẠlsof ááá¯á¡áá¯á¶ážááŒá¯ááŒá®áž áááºááá·áºááá¯ááºáá±á¬áºááŒáá»ááºá¡á¬áž áááºááá·áºáááºááœááºáá»ááºá¡ááœáẠá¡áá¯á¶ážááŒá¯áá¬ážáááºááᯠááŒáá·áºááŸá¯áá«á ááá¯á·ááŒá±á¬áá·áº Strace áá¡áá°á¡áá®ááŒáá·áº á¡áááºáá±á¬áºááŒáá«ááááºáá»á¬ážááᯠáááŸááá²á·áá«áááºá etcd á០wal_fsync_duration_seconds á០wal_fsync_duration_seconds ááẠWAL ááá¯ááºáá±á¬áºááŒáá»ááºáá±ážáá¬ážáá±á¬ fdatasync áá±á«áºááá¯ááŸá¯áá»á¬ážááŸáá·áº ááá¯ááºáá®ááŒá±á¬ááºáž áááºáá°ááŒá¯ááŒá±á¬ááºáž á¡áááºááŒá¯áá«áááºá
áá»áœááºá¯ááºááá¯á·ááẠfio á¡ááœáẠá á¬ááœááºá á¬áááºážáá»á¬ážááᯠááŒááºáá»á±á¬áºááŒá®áž fio ááŸáá·áº á¡áá¬ážáá°áá±á¬ load áá áºáá¯ááᯠáá¯ááºáá±ážáááºá¡ááœáẠáá»áœááºá¯ááºááá¯á·á script á¡ááœáẠááœá±ážáá»ááºááŸá¯áá»á¬ážááᯠááœá±ážáá»ááºáá²á·áááºá etcd ááŸáá·áºáááºáá°áá±á¬ fio á០strac ááᯠrun ááŒááºážááŒáá·áº á áá áºáá±á«áºááá¯ááŸá¯áá»á¬ážááŸáá·áº áááºážááá¯á·áááŒá¬áá»áááºááá¯á·ááᯠá á áºáá±ážáá«áááºá
fio á០I/O load áá áºáá¯áá¯á¶ážááá¯ááá¯ááºá á¬ážááŒá¯ááẠ--size parameter ááááºááá¯ážááᯠááá¯áá áá¯ááºááœá±ážáá»ááºáá¬ážáá«áááºá áá»áœááºá¯ááºááá¯á·áá¡ááŒá±á¡áá±ááœááºá áááºážááẠááá¯ááŸá±á¬ááºááŸá¯ááá¯á· áá±ážáá¬ážáá±á¬ á á¯á á¯áá±á«ááºážááá¯ááºáá»á¬ážááŒá áºáááºá áááºážááẠwrite (ááŸáá·áº fdatasync) á áá áºáá±á«áºááá¯ááŸá¯á¡áá±á¡ááœááºááŸáá·áº ááá¯ááºááá¯ááºá¡áá»áá¯ážáá»áá«áááºá bs á á¡áá»áá¯á·áá±á¬áááºááá¯ážá¡ááœááºá fdatasync áá±á«áºááá¯ááŸá¯á¡áá±á¡ááœáẠ= size/bsá áá¬ááá¯ááºááŸá¯ááºážááᯠáá»áœááºá¯ááºááá¯á·á áááºáááºá á¬ážáá±á¬ááŒá±á¬áá·áºá áá±áá»á¬áááºááá°áá¬áá»á¬áž áá¯á¶áá¯á¶áá±á¬ááºáá±á¬ááºááŸáááẠááá¯á¡ááºááŒá®áž 10^4 ááẠáá»áœááºá¯ááºááá¯á·á¡ááœáẠáá¯á¶áá±á¬ááºáááá·áºááẠ(áááºážááẠ22 mebibytes) ááŒá áºáááºáᯠááœááºáá»ááºáá¬ážáá«áááºá --size ááẠáá±ážáááºáá«áá outliers áá»á¬áž ááŒá áºáá±á«áºáá¬ááá¯ááºááẠ(á¥ááá¬á fdatasync áá±á«áºááá¯ááŸá¯ á¡áá»á¬ážá¡ááŒá¬ážááẠáá¯á¶ááŸááºááẠááá¯ááŒá¬ááŒá®áž 99th percentile ááᯠááááá¯ááºá á±áááº)á
ááá¯ááºááá¯ááºááŒáá¯ážá á¬ážáá«
fio á¡áá¯á¶ážááŒá¯áááºážááᯠááá·áºá¡á¬áž ááŒááá²á·ááŒá®áž ááá¯ááŸá±á¬ááºááŸá¯ááẠetcd á¡ááœáẠáá±á¬ááºážááœááºá
áœá¬ áá¯ááºáá±á¬ááºááẠáá¯á¶áá±á¬ááºááŸá¯ ááŒááºáááºááŒááºáž ááŸááááŸá ááŒáá·áºááŸá¯áá«á á¥ááᬠSSD ááá¯ááŸá±á¬ááºááŸá¯ááŸááá±á¬ virtual machines áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á áááºááá¯ááºááá¯áẠá
ááºážáá¯á¶ážááŒáá·áºááá¯ááºáá«ááŒá®á
source: www.habr.com