ááŸááºáá»ááºá áá¬áá¬ááŒááº: á€áá±á¬ááºážáá«ážááẠetcd áá±áá¬áá±á·á áºááá¯ááºáá±á¬ááºááŸá¯ááŸáá·áºáááºáááºááá·áº áááá·áºááŒá¿áá¬áá áºáá¯á¡ááœáẠá¡ááŒá±ááá¯ááŸá¬ááœá±áááºá¡ááœáẠIBM Cloud á¡ááºáá»ááºáá®áá¬áá»á¬ážááŒá¯áá¯ááºáá±á¬ á¡áá±ážá á¬ážáá¯áá±áááááááºááŒá áºáááºá á¡áá¬ážáá°á¡áá¯ááºáá áºáá¯ááẠáá»áœááºá¯ááºááá¯á·á¡ááœáẠáááºááá¯ááºáá±á¬áºáááºážá á á¬áá±ážááá¬áá»á¬ážá áá±á¬ááºááŒááºáááºááŸá¯ááŸáá·áº áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááẠááá¯ááá¯áá»ááºááŒáá·áºáá±á¬á¡ááŒá±á¬ááºážá¡áá¬ááœáẠá áááºáááºá á¬ážááœááºáá±á¬ááºážáá±áááºá
áá±á¬ááºážáá«ážáá áºáá¯áá¯á¶ážá á¡áá»ááºážáá»á¯ááº- fio ááŸáá·áº etcd
etcd á¡á
á¯á¡áá±ážáá
áºáá¯á á
áœááºážáá±á¬ááºáááºááẠá¡áááºážáá¶ááá¯ááŸá±á¬ááºááŸá¯á¡ááŒááºááŸá¯ááºážáá±á«áºááœáẠáá»á¬ážá
áœá¬áá°áááºáá«áááºá etcd ááẠá
áœááºážáá±á¬ááºáááºááᯠá
á±á¬áá·áºááŒáá·áºááẠá¡áá»áá¯ážáá»áá¯ážáá±á¬ Prometheus áááºááá
áºáá»á¬ážááᯠáááºááá¯á·áááºá ááá±á¬ááºá wal_fsync_duration_seconds
. etcd á¡ááœááºá
á¬ááœááºá
á¬áááºážáá»á¬ážááœááº
á¡áááºá áááºááẠLinux á
ááºáá»á¬ážááœáẠetcd á¡á
á¯á¡áá±ážáá
áºáá¯ááᯠáááºáá±á¬ááºááẠá
ááºážá
á¬ážáá±ááŒá®áž drives (á¥ááᬠSSDs áá»á¬ážáá²á·ááá¯á·) áá¯á¶áá±á¬ááºááŒááºážááŸááááŸá á
ááºážáááºááá¯áá«áá áá°ááŒáá¯ááºáá»á¬ážáá±á¬ I/O tester ááᯠá¡áá¯á¶ážááŒá¯ááẠá¡ááŒá¶ááŒá¯ááá¯áá«áááºá test-data
á
ááºážáááºáá¬ážáá±á¬ drive á áááºáááºáá¬ážáá±á¬ á¡áááºážááá·áºááœáẠááŸááá±ááááº)
fio --rw=write --ioengine=sync --fdatasync=1 --directory=test-data --size=22m --bs=2300 --name=mytest
á¡ááœááºááá¯ááŒáá·áºáááºááŸáá·áº 99th áá¬ááá¯ááºááŸá¯ááºáž ááá¯ááºáá®ááŸá¯ááŸááááŸá á
á
áºáá±ážáááºáᬠáá»ááºáá±á¬á·áááºá fdatasync
fsync/fdatasync/sync_file_range:
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
disk subsystem ááᯠload áá¯ááºáááºá áááºááœá±á·ááááœááºá áááºážááŸáá·áºáááºááá¯ááºááá·áºá¡áá¬áá»á¬ážá¡ááŒáẠá¡ááŒá¬ážáá±á¬ áá¯ááºáááºážá ááºáá»á¬ážááẠdisk ááá¯á· á á¬áá±ážááá¯ááºááœááºááŸááááºáwal_fsync_duration_seconds
) á€á¡ááá¯áá±á¬ááºážáááºááá¯ážááá¯ááºáááºáwal_fsync_duration_seconds
. áá áºáááºážááá¯ááá±á¬áº 99th percentile ááŒáá·áº á ááºážáááºááŒááºáž ááŒá áºáááºáfio
10 ms áááºá¡áááºážáááºáááºážáá±á¬á ááá¯ááŸá±á¬ááºááŸá¯á áœááºážáá±á¬ááºáááºááá¯á¶áá±á¬ááºááŒááºážááŸá¬ á¡ááœáá·áºá¡áááºážáá±á¬ááºážááŸááá«áááºá - á
ááºážáááºáááºá¡ááœáẠáááºááẠáá¬ážááŸááºážááᯠááá¯á¡ááºáááºááŒá
áºáááºá
fio
3.5 áááºááááá·áºáá¬ážááŸááºážá¡áá±á¬ááºážáá»á¬ážááẠááááºáá»á¬ážááᯠá á¯á ááºážááá¬ážáá±á¬ááŒá±á¬áá·áºááŒá áºáááºáfdatasync
áá¬ááá¯ááºááŸá¯ááºážá¡ááá¯ááºá - á¡áááºáá«áá±á¬ááºáá»ááºááẠáá±áá¯áá»áá±á¬ááºáá¯ááºáá»áẠá¡áááºážáááºáá»áŸáá¬ááŒá
áºáááºá
fio
.
Fio ááŸáá·áº etcd á¡ááŒá±á¬ááºážáá»á¬áž
WAL á áááºááá¯á·á¡ááŒá±á¬ááºáž á áá¬ážá¡áááºážáááº
áá±áá°áá»á¡á¬ážááŒáá·áºá databases ááá¯á¡áá¯á¶ážááŒá¯áááºá
ááá¯á·ááŒá±á¬áá·áºá client ááẠKV á
ááá¯ážááœáẠáá±á¬á·áá
áºáá¯ááá·áºááá·áºá¡áá«ááá¯ááºáž ááá¯á·ááá¯áẠááŸáááŒá®ážáá¬ážáá±á¬á·áááºááá¯ážááᯠá¡ááºááááºáá¯ááºááá¯ááºážá etcd ááẠpersistent store ááŸá áá¯á¶ááŸááºááá¯ááºááŒá
áºááá·áº WAL ááá¯á· áá¯ááºáá±á¬ááºáá»ááºá áá±á¬áºááŒáá»ááºááᯠáá±á«ááºážááá·áºáááºá etcd áááºáááºááá¯ááºáá±á¬ááºáá® WAL entry ááᯠá¡ááŸááºáááẠááááºážáááºážáá¬ážááŒá±á¬ááºáž 100% áá±áá»á¬ááá«áááºá áááºážááᯠLinux ááœááºáááŸááááºá á
áá
áºáá±á«áºááá¯ááŸá¯ááᯠá¡áá¯á¶ážááŒá¯ááẠááá¯á¶áá±á¬ááºáá«á write
fdatasync
- áá«á etcd áá¯ááºáᬠ(á¡á±á¬ááºáá« output ááŸá¬ááœá±á·ááŒááºááá²á·á¡ááá¯ááºážáá«áá²á strace
8
- WAL ááá¯ááºáá±á¬áºááŒáá»ááº-
21:23:09.894875 lseek(8, 0, SEEK_CUR) = 12808 <0.000012>
21:23:09.894911 write(8, ".20210220361223255266632$1020103026"34"rn3fo"..., 2296) = 2296 <0.000130>
21:23:09.895041 fdatasync(8) = 0 <0.008314>
áá¶ááá±á¬ááºážá
áœá¬áá²á ááŒá²ááŒá¶áá±á¬ááá¯ááŸá±á¬ááºááŸá¯ááá¯á·á
á¬áá±ážáááºá¡áá»áááºá¡áááºážáááºááŒá¬áááºá fdatasync áá±á«áºááá¯ááŸá¯áá»á¬ážááᯠááŒá¬ááŸááºá
áœá¬ áá¯ááºáá±á¬ááºááŒááºážááẠetcd á á
áœááºážáá±á¬ááºáááºááᯠááááá¯ááºá
á±ááá¯ááºáááºá repository documentation ááŸá¬ fdatasync
WAL ááá¯ááºáá
áºáá¯ááá¯á·áá±ážáá±á¬á¡áá« 10 ms áááºáááºážáááºá á¡ááŒá¬ážáá±á¬ ááá¯ááŸá±á¬ááºááŸá¯ááá¯ááºáᬠááá¯ááºážáá¬ááŸá¯áá»á¬ážáááºáž ááŸááá«áááºá ááá¯á·áá±á¬áº á€áá±á¬ááºážáá«ážááœáẠáááºážááᯠá¡á¬áá¯á¶á
áá¯ááºáá«áááºá
fio ááŒáá·áº ááá¯ááŸá±á¬ááºááŸá¯ááᯠáááºááá¯ážááŒááºááŒááºážá
utility ááᯠá¡áá¯á¶ážááŒá¯á á¡áá»áá¯á·áá±á¬ááá¯ááŸá±á¬ááºááŸá¯ááẠetcd ááŸáá·áº á¡áá¯á¶ážááŒá¯ááẠááá·áºáá»á±á¬áºááŸá¯ááŸááááŸá á¡áá²ááŒááºááá¯ááºáá«áááºá fio
á¡áá¯á¶ážááŒá¯áááºá¡ááœááºáááºáá²áááºá utility ááœáẠparameters áá»á¬ážá
áœá¬ááŸáááŒá®áž áááºážááá¯á·ááááºááá¯ážáá»á¬áž ááá°áá®áá±á¬áá±á«ááºážá
ááºááŸá¯áá»á¬ážááẠáá¯á¶ážáááœá²ááŒá¬ážááŒá¬ážáá¬ážáá±á¬ááááºáá»á¬ážááá¯ááŒá
áºáá±á«áºá
á±áááºá etcd á¡ááœáẠáá»áá¯ážááŒá±á¬ááºážáá®áá»á±á¬áºáá±á¬ ááá·áºááŸááºážáá»ááºáá
áºáá¯ááááºá¡ááœááºá áááºááẠfio ááŸáá¯ááºáá±ážáá±á¬ write load ááẠetcd á WAL ááá¯ááºááᯠwrite load ááŸáá·áº á¡áá®ážá
ááºáá¯á¶ážáá±áá»á¬á
á±ááẠááá¯á¡ááºáááº-
- ááá¯ááá¯áá¬á áá¯ááºáá±ážáááºá
fio
load ááẠá¡áááºážáá¯á¶áž system call áá áºáá¯á á®áá«áááºááá·áº ááá¯ááºáá®ááá¯á· áá áºáááºáááºáž áá±ážáá¬ážááá·áºááẠááŸááá¯ááºáá«áá»áŸááºwrite
fdatasync
. - ááá·áºáá²áá±ážáá¬ážááŒááºážááᯠááœáá·áºáááºá áááºááẠá¡áá¶ááᯠáááºááŸááºááá«áááºá
--rw=write
. - ááá¯
fio
áá±á«áºááá¯ááŸá¯áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á áá±ážáá¬ážáá²á·áááºáwrite
(á¥ááá¬- á¡ááŒá¬ážá áá áºáá±á«áºááá¯ááŸá¯áá»á¬ážáááºá ) á¡áá¶ááá¯á¡áá¯á¶ážááŒá¯áá«ápwrite
--ioengine=sync
. - áá±á¬ááºáá¯á¶ážáá±á¬á· á¡áá¶áá±á«á·á
--fdatasync=1
áá±áá»á¬áá«áááºáwrite
ááá·áºáááºfdatasync
. - áá»áœááºá¯ááºááá¯á·áá¥ááá¬ááŸá á¡ááŒá¬ážáá±á¬ ááá·áºáááºáá»ááºááŸá
áºáá¯ááŸá¬-
--size
О--bs
- áá®ážááŒá¬ážá¡áá¯á¶ážááŒá¯ááŸá¯á¡ááŒá±á¡áá±áá±á«áºáá°áááºá ááœá²ááŒá¬ážááá¯ááºáááºá áá±á¬ááºá¡ááá¯ááºážááœáẠáááºážááá¯á·áááœá²á·á ááºážáá¯á¶ááᯠáá±á¬áºááŒáá«áááºá
áá»áœááºá¯ááºááá¯á· áá¬ááŒá±á¬áá·áº áá®á¡áá¯ááᯠááœá±ážáá»ááºáá²á·ááá²á á¡á²áá«ááᯠáááºááá¯ááŒááºáááºáááá²ááá¯áᬠáá±á·áá¬áá²á·áá«áááºá
á€ááŸááºá
á¯ááẠáá»áœááºá¯ááºááá¯á·ááŒá¯á¶ááœá±á·áááá·áº áááá·áºááŒá
áºáááºá០áááºážáááºáá¬áááºá Prometheus ááœáẠá
á±á¬áá·áºááŒáá·áºááŸá¯ááŸáá·áºá¡áá° Kubernetes v1.13 ááœáẠá¡á
á¯á¡áá±ážáá
áºáá¯ááŸááááºá SSD áá»á¬ážááᯠetcd v3.2.24 á¡ááœáẠááá¯ááŸá±á¬ááºááŸá¯á¡ááŒá
Ạá¡áá¯á¶ážááŒá¯áá²á·áááºá á
áááºááá¯á·á áááºááá
áºáá»á¬ážááẠá¡ááœááºááŒáá·áºáá¬ážáá±á¬ latencies ááá¯ááŒááá¬ážáááºá fdatasync
á¡á
á¯á¡áá±ážááẠá¡áá¯ááºááá¯ááºááá·áºááá¯ááºá áá»áœááºá¯ááºááá¯á·á¡ááœááºá á€áááºááá
áºáá»á¬ážááẠá¡ááœááºáá¶ááááŒá
áºáá¯á¶áááŒá®áž áááºážááá¯á·ááẠáááºááá·áºá¡áá¬ááᯠááá¯ááºá
á¬ážááŒá¯áááºááᯠáá»áœááºá¯ááºááá¯á· áá±áá»á¬ááááá«á ááá¯á·á¡ááŒááºá á¡á
á¯á¡áá±ážááœáẠvirtual machines áá»á¬ážáá«áááºáá±á¬ááŒá±á¬áá·áº ááŸá±á¬áá·áºááŸá±ážáááŒááºážááŸá¬ virtualization ááŒá±á¬áá·áºáá¬áž ááá¯á·ááá¯áẠSSD ááᯠá¡ááŒá
áºáááºááŒááºážááŒá
áºáááŒá
ẠáááŒá±á¬ááá¯ááºáá«á
ááá¯á·á¡ááŒááºá áá»áœááºá¯ááºááá¯á·ááẠáá¬á·ááºáá²ááŸáá·áº áá±á¬á·ááºáá²ááºááœá²á·á ááºážáá¯á¶ááœá²á·á ááºážáá¯á¶ááœáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááá·áºááœááºážá ááºážá á¬ážáá±á¬ááŒá±á¬áá·áº áááºážááá¯á·ááᯠá¡áá²ááŒááºááẠáááºážáááºážáá áºáᯠááá¯á¡ááºáá«áááºá áá¯ááºáá«áááºá configuration áá áºáá¯á á®ááŸá¬ etcd ááᯠrun ááŒá®áž áááºááá¯ááºáᬠPrometheus metrics ááœá±ááᯠááŒáá·áºááá¯ááºáá±ááá·áº á¡á²áá«á áááá¬áááºááŸá¬ážáá²á· á¡á¬ážáá¯ááºááŸá¯ ááá¯á¡ááºáá«áááá·áºáááºá áá»áœááºá¯ááºááá¯á·ááá¯á¡ááºáá±á¬á¡áá¬ááŸá¬ áá®ážááŒá¬ážááœá²á·á ááºážáá¯á¶áá áºáá¯ááᯠá¡áá²ááŒááºááẠááá¯ážááŸááºážáá±á¬áááºážáááºážááŒá áºáááºá etcd ááŸáá¬áá±á¬ Prometheus áááºááá áºáá»á¬ážááᯠáá»áœááºá¯ááºááá¯á·ááá¬ážáááºááŸá¯ááᯠá ááºážáááºááá¯áá«áááºá
á€áááºááŸá¬ ááŒá¿áá¬ááŸá áºáá¯ááᯠááŒá±ááŸááºážááẠááá¯á¡ááºáááº-
- ááááŠážá áœá¬á WAL ááá¯ááºáá»á¬ážááá¯á·á á¬áá±ážáá±á¬á¡áá« etcd ááŸáá¯ááºáá±ážáá±á¬ I/O load áááºáááºááá¯á·áá¯á¶ááá¹áá¬ááºááŸáááááºážá áááºááá·áºá áá áºáá±á«áºááá¯ááŸá¯áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááááºážá ááŸááºáááºážáá¯á¶ážáá»á¬ážá á¡ááœááºá¡á á¬ážááŸá¬ á¡áááºáááºážá
- áá¯áááá¡áá±áá²á· á¡áááºáá±á¬áºááŒáá«áá±ážááœááºážááœá±á¡ááœáẠá¡ááŒá±ááŸááá«ááẠááá¯ááŒáá«á
áá¯á·á áááºááá¯ááºáᬠáááºááŒáá·áº áá»áá¯ážááœá¬ážáááºáž
fio
? áá±á¬ááºáá¯á¶ážáá±á¬á·fio
- áá±á¬ááºáá»á¬áž áá»á¬ážááŒá¬ážáá±á¬ á¡ááœááºááŒá±á¬ááºážááœááºááŒááºááœáẠá¡áá¯á¶ážáááºááŸá¯ (á¥ááá¬á á¡áááºááŒá¯ááẠááœááºáá°áááºááá®ááŸá¬ - á¡áá®ážá ááºáá¯á¶áž áá¬áá¬ááŒááºá).
áá°áá®áá±á¬ command-based áá»ááºážáááºááŸá¯ááŒáá·áº ááŒá¿áá¬ááŸá
áºáá¯áá¯á¶ážááᯠááŒá±ááŸááºážáá²á·áááºá lsof
strace
- ááŸáá·áº
lsof
áá¯ááºáááºážá ááºááœááºá¡áá¯á¶ážááŒá¯ááá·áº ááá¯ááºáá±á¬áºááŒáá»ááºá¡á¬ážáá¯á¶ážááᯠáááºááŒáá·áºááŸá¯ááá¯ááºááá·áºá¡ááŒáẠáááºážááá¯á·á¡á¬ážááá¯ážáá¬ážááá·áºááá¯ááºáá»á¬ážááᯠáááºááŒáá·áºááŸá¯ááá¯ááºáá«áááºá - ááŸáá·áº
strace
áá¯ááºáá±á¬ááºáá±ááŒá®ážááŒá áºáá±á¬ áá¯ááºáááºážá ááºááᯠááá¯ááºážááŒá¬ážá áááºááŒá¬ááá¯ááºááẠááá¯á·ááá¯áẠáá¯ááºáááºážá ááºáá áºáá¯ááᯠáá¯ááºáá±á¬ááºááŒá®áž áááºážááᯠááŒáá·áºááŸá¯ááá¯ááºáááºá á¡áááá·áºááẠá€áá¯ááºáááºážá ááºá០ááŒá¯áá¯ááºáá±á¬ á áá áºáá±á«áºááá¯ááŸá¯á¡á¬ážáá¯á¶ážááᯠááŒáááŒá®áž ááá¯á¡ááºáá«á áááºážá áá»áá¯ážáááºáá»á¬ážááᯠááŒááááºá áá±á¬ááºáá áºáá¯á áááºážááœá²áá²á· áá¯ááºáááºážá ááºááœá±á¡ááœáẠá¡áá±ážááŒá®ážááŒá®áž etcd ááá±á¬á· á¡á²áá®áá¯ááºáááºážá ááºáá áºáá¯áá«áá²á
áá»áœááºáá±á¬áºááá¯á· ááááá¯á¶ážáá¯ááºáá²á·áá¬ááá±á¬á· áá¯á¶ážááá¯á·áá«áá²á strace
áá¬ááŸááá¯ááºáá² Kubernetes á¡á
á¯á¡áá±ážááŸá etcd áá¬áá¬ááᯠá
á
áºáá±ážáááºá
ááá¯á·ááŒá±á¬áá·áº WAL ááŸááºáááºážáá¯ááºááœááºáá»á¬ážááẠá¡ááœááºááááºáááºážá
áœá¬ á¡á¯ááºá
á¯ááœá²á·áá¬ážáááºááᯠááœá±á·ááŸááá²á·áááŒá®áž á¡áá»á¬ážá
á¯áá¡ááœááºá¡á
á¬ážááẠ2200-2400 bytes á¡ááœá¬á¡áá±ážááœááºááŸááááºá ááá¯á·ááŒá±á¬áá·áº á€áá±á¬ááºážáá«ážáá¡á
ááœáẠá¡áááá·áºááẠá¡áá¶ááᯠá¡áá¯á¶ážááŒá¯áá¬ážáááºá --bs=2300
(bs
ááá±á¬á·áá
áºáá¯á
á®á bytes á¡ááœááºá¡á
á¬ážááŒá
áºáááºá fio
).
etcd write blocks áá»á¬ážá á¡ááœááºá¡á
á¬ážááẠáá¬ážááŸááºážá á¡áá¯á¶ážáá»ááŸá¯á ááá·áºáááºáá»ááºáááºááá¯ážáá»á¬áž á
áááºááá¯á·á¡áá±á«áº áá°áááºá ááœá²ááŒá¬ážááá¯ááºáááºááᯠáááááŒá¯áá«á - ááŒá¬áá»áááºááᯠááááá¯ááºá
á±áááºá fdatasync
. ááá·áºááœáẠá¡áá¬ážáá°á¡áá¯á¶ážááŒá¯ááŸá¯ááá
á¹á
áá
áºáá¯ááŸááá«áá ááŒáá·áºááœá²ááŒááºážá
áááºááŒá¬áá«á strace
áá±á¬ááºáá¯á¶ážáá±á«áº áááºááá¯ážáá»á¬ážááᯠááá°ááẠáááºá etcd áá¯ááºáááºážá
ááºáá»á¬ážá
ááá¯á·áá±á¬ááºá ááá¯ááºá
áá
áºááŸáá·áº etcd á¡áá¯ááºáá¯ááºáá¯á¶ááá¯á·ááᯠááŸááºážááŸááºážáááºážáááºážááŸáá·áº áá»ááºáá»ááºááŒáá·áºááŒáá·áº ááááŸáááá¯ááºá
á±áááºá¡ááœááºá strace
á¡áá¶áá»á¬ážááŸáá·áº -ffttT
. áááºážá ááá±ážáá¯ááºáááºážá
ááºáá»á¬ážááᯠáááºážáá°ááŒá®áž áá
áºáá¯áá»ááºážá
á®á á¡ááœááºááᯠáá®ážááŒá¬ážááá¯ááºáá
áºáá¯ááá¯á· áá±ážááá¯ááºá
á±áá²á·áááºá ááá¯á·á¡ááŒáẠá
áá
áºáá±á«áºááá¯ááŸá¯áá
áºáá¯á
á®á á
áááºáá»áááºááŸáá·áº ááŒá¬áá»áááºáá»á¬ážá¡ááŒá±á¬ááºáž á¡áá±ážá
áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠááá°áá²á·áá«áááºá
áá»áœááºáá±á¬áºááá¯á·áááºáž command ááá¯áá¯á¶ážáááºá lsof
output ááá¬ážáááºááŸá¯ááá¯á¡áááºááŒá¯ááẠstrace
áááºááá·áº áááºááœááºáá»ááºá¡ááœáẠáááºááá·áºááá¯ááºáá±á¬áºááŒáá»ááºááᯠá¡áá¯á¶ážááŒá¯áá²á·áááºááᯠáááºááŸááºáá»ááºááœáẠáá±á¬áºááŒáá¬ážáááºá áááá¯á¶ážáá»á¯ááºááœá¬ážáááºá strace
á¡áá±á«áºááá¯á¶áá²á·áá°áááºá ááááºážááááºážááá¯ááºáᬠááŒááºááŸááºááŸá¯áá»á¬ážááŸáá·áº áááºáá°áá»ááá·áºá¡áá»áááºáá»á¬ážááᯠáááºááá
áºá á¡áááºááŒá¯áá²á·áááºá wal_fsync_duration_seconds
etcd matches áá»á¬ážá០áá±á«áºááá¯ááŸá¯áá»á¬áž fdatasync
WAL ááá¯ááºáá±á¬áºááŒáá»ááºáá»á¬ážááŸáá·áºá
á¡áá°áá¯ááºáá¯ááºááẠfio
etcd á០á¡áá¬ážáá°á¡áá¯ááºáááºááᯠutility áá
á¬ááœááºá
á¬áááºážáá»á¬ážááá¯áá±á·áá¬áá²á·ááŒá®ážáá»áœááºá¯ááºááá¯á·ááá¯ááºáááºážá¡ááœááºááá·áºáá»á±á¬áºáá±á¬áá±á¬ááºáá»á¬ážááá¯ááœá±ážáá»ááºáá²á·áááºá ááŸááºáááºáá±á¬á
áá
áºáá±á«áºááá¯ááŸá¯áá»á¬áž áá¯ááºáá±á¬ááºáá±ááŒá®ááŒá
áºááŒá±á¬ááºáž áá»áœááºá¯ááºááá¯á·á
á
áºáá±ážááŒá®áž áá¯ááºáá±á¬ááºááŒááºážááŒáá·áº áááºážááá¯á·áááŒá¬áá»áááºááᯠá¡áááºááŒá¯áá¬ážáá«áááºá fio
á០strace
(etd of case á¡ááá¯ááºáž)á
ááá·áºáááºáá»ááºááááºááá¯ážááᯠáá¯á¶ážááŒááºáá¬ááœáẠá¡áá°ážá¡á¬áá¯á¶á
áá¯ááºáá²á·áááºá --size
. áááºážááẠfio utility ááŸáá¯ááºáá±ážáá±á¬ á
á¯á
á¯áá±á«ááºáž I/O áááºá¡á¬áž ááá¯ááºá
á¬ážááŒá¯áááºá áá»áœááºá¯ááºááá¯á·áá¡ááŒá±á¡áá±ááœááºá áááºážááẠáá®áá®áá¬ááá¯á·áá±ážáá¬ážáá¬ážáá±á¬ á
á¯á
á¯áá±á«ááºážááá¯ááºáá»á¬ážááŒá
áºáááºá áá±á«áºááá¯ááŸá¯á¡áá±á¡ááœááºááŸáá·áº ááá¯ááºááá¯ááºá¡áá»áá¯ážáá»áááºá write
(ááŸáá·áº fdatasync
) áááºáááºááŸááºááŸááºá¡ááœáẠbs
áá±á«áºááá¯ááŸá¯á¡áá±á¡ááœáẠfdatasync
ááŒá
Ạsize / bs
.
áá¬ááá¯ááºááŸá¯ááºážááᯠáá»áœááºá¯ááºááá¯á· á
áááºáááºá
á¬ážáá±á¬ááŒá±á¬áá·áºá á
á¬áááºážá¡ááºážááá¯ááºáᬠáááá¬áááºááŸá¬ážááá¯ááºáá±á¬ááºá¡á±á¬áẠááá°áá¬á¡áá±á¡ááœááºááᯠááŒá®ážáá¬ážá
á±ááá¯áá«áááºá á¡á²áá«ááᯠáá¯á¶ážááŒááºááá¯ááºáááºá 10^4
(22 MB á¡ááœááºá¡á
á¬ážááŸáá·áº ááá¯ááºáá®áá±á¬) áá¯á¶áá±á¬ááºáá«áááºá áá±ážáááºáá±á¬ ááá·áºáááºáááºááá¯ážáá»á¬áž --size
á¡áá¶ááá¯ááœááºá
á±ááẠ(á¥ááá¬á áá±á«áºááá¯ááŸá¯áá»á¬áž fdatasync
áá¯á¶ááŸááºáááºá¡áá»á¬ážááŒá®ážááá¯ááŒá¬ááŒá®áž 99th percentile ááᯠááááá¯ááºá
á±áá«áááº)á
áááºá·á¡áá±á«áºáá°áááºáá«áááº
á¡áá¯á¶ážááŒá¯áááºážááᯠáá±á¬ááºážáá«ážááœáẠáá±á¬áºááŒáá¬ážáááºá fio
etcd ááŒáá·áºá¡áá¯á¶ážááŒá¯ááẠáááºááœááºáá¬ážáá±á¬ áá®áá®áá¬ááẠáá¯á¶áá±á¬ááºááẠááŒááºáááºááŒááºáž ááŸáá áááŸá áá¯á¶ážááŒááºááá¯ááºáááºá ááá¯áá±á¬á· ááá·áºá¡ááœááºáá¬ááŒá
áºáááºá áááºáá±á¬ááºááŸá¯ááœáẠSSD-based ááá¯ááŸá±á¬ááºááŸá¯ááŒáá·áº virtual machines áá»á¬ážááᯠáááºááŸá¬ááœá±ááá¯ááºáá«áááºá
PS áá¬áá¬ááŒááºááŸ
á¡áááºááá·áºáá¯á¶ážááá¯ááºáá±á¬ á¡áááºáá»á¬ážááŒáá·áº fio
á¡ááŒá¬ážá¡áá¯ááºáá»á¬ážá¡ááœáẠááŒáá·áºáá«á
áá¬áá¬ááŒááºáá°áá¶á០PPS
áá»áœááºá¯ááºááá¯á·áááá±á¬á·ááºááœááºáááºážáááºáá«
- «
etcd 3.4.3- ááá¯ááŸá±á¬ááºááŸá¯ áá¯á¶ááŒááºá áááºáá»áááŸá¯ááŸáá·áº áá¯á¶ááŒá¯á¶áá±ážáá±á·áá¬ááŸá¯ "; - «
etcd Kubernetes á¡á á¯á¡áá±ážááœáẠáá±áá¬ááŸáá·áº áá»áœááºá¯ááºááá¯á·áá¡ááœá±á·á¡ááŒá¯á¶ááᯠááá¯ááºááá¯áẠ(K8s API ááá«áá²) "; - «
Kubernetes áááºáááºááŸá¯ááœáẠáá»á±á¬áºááŒá±áá±ážá áá Ạáá»áá¯á·ááœááºážáá»áẠ6 áᯠ[ááŸáá·áº áááºážááá¯á·á ááŒá±ááŸááºážáá»ááº] "á
source: www.habr.com