ΠΡΠ°ΡΠΊΠ° ΠΏΡΠΈΠΊΠ°Π·Π½Π° Π·Π° ΡΠΈΠΎ ΠΈ Π΄Ρ
ΠΠ·Π²Π΅Π΄Π±Π° Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ
fio --rw=write --ioengine=sync --fdatasync=1 --directory=test-data --size=22m --bs=2300 --name=mytest
Π’ΡΠ΅Π±Π° ΡΠ°ΠΌΠΎ Π΄Π° Π³ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΈ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΠ΅ Π΄Π°Π»ΠΈ Π΅ 99-ΡΠΈΠΎΡ ΠΏΠ΅ΡΡΠ΅Π½ΡΠΈΠ» ΠΎΠ΄ Π²ΡΠ΅ΠΌΠ΅ΡΡΠ°Π΅ΡΠ΅ΡΠΎ
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 . - ΠΠ° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ΡΠΎ, ΡΠ΅Π»ΠΎΡΠΎ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ Π½Π° I/O Π΄ΠΎΠ°ΡΠ° ΠΎΠ΄ fio. ΠΠΎ ΡΠ΅Π°Π»Π½ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΠΎ, Π²Π΅ΡΠΎΡΠ°ΡΠ½ΠΎ ΡΠ΅ ΠΈΠΌΠ° ΠΈ Π΄ΡΡΠ³ΠΈ Π±Π°ΡΠ°ΡΠ° Π·Π° ΠΏΠΈΡΡΠ²Π°ΡΠ΅ ΠΊΠΎΠΈ Π΄ΠΎΠ°ΡΠ°Π°Ρ Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ, ΠΎΡΠ²Π΅Π½ ΠΎΠ½ΠΈΠ΅ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ wal_fsync_duration_seconds. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈΠΎΡ ΡΠΎΠ²Π°Ρ ΡΠ΅ ΡΠ° Π·Π³ΠΎΠ»Π΅ΠΌΠΈ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠ° Π½Π° wal_fsync_duration_seconds. ΠΠ½Π°ΡΠΈ, Π°ΠΊΠΎ 99-ΠΎΡ ΠΏΠ΅ΡΡΠ΅Π½ΡΠΈΠ» Π΅ Π±Π»ΠΈΡΠΊΡ Π΄ΠΎ 10 ms, Π²Π°ΡΠ°ΡΠ° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° Π΅ Π±Π΅Π· Π±ΡΠ·ΠΈΠ½Π°.
- ΠΠ΅ΠΌΠ΅ΡΠ΅ ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ°ΡΠ°
Π€ΠΈΠΎ Π½Π΅ ΠΏΠΎΠΌΠ°Π»ΠΊΡ ΠΎΠ΄ 3.5 (ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΈΡΠ΅ Π½Π΅ ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π°Π°Ρ ΠΏΠ΅ΡΡΠ΅Π½ΡΠΈΠ»ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅ΡΡΠ°Π΅ΡΠ΅ Π½Π° fdatasync). - ΠΠΎΠ³ΠΎΡΠ΅ Π΅ ΡΠ°ΠΌΠΎ Π΄Π΅Π» ΠΎΠ΄ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΠ΄ fio.
ΠΠΎΠ»Π³Π° ΠΏΡΠΈΠΊΠ°Π·Π½Π° Π·Π° Fio ΠΈ etcd
Π¨ΡΠΎ Π΅ WAL Π²ΠΎ ΠΈΡΠ½
ΠΠ±ΠΈΡΠ½ΠΎ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π±Π°Π·ΠΈ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ
ΠΠΎΠ³Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΡ Π΄ΠΎΠ΄Π°Π²Π° ΠΊΠ»ΡΡ Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ ΡΠΎ Π²ΡΠ΅Π΄Π½ΠΎΡΡ Π½Π° ΠΊΠ»ΡΡΠΎΡ ΠΈΠ»ΠΈ ΡΠ° Π°ΠΆΡΡΠΈΡΠ° Π²ΡΠ΅Π΄Π½ΠΎΡΡΠ° Π½Π° ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠΈΠΎΡ ΠΊΠ»ΡΡ, ΠΈΡΠ½. etcd ΠΠΠ Π Π΄Π° Π±ΠΈΠ΄Π΅ ΡΠ΅Π»ΠΎΡΠ½ΠΎ ΡΠΈΠ³ΡΡΠ΅Π½ Π΄Π΅ΠΊΠ° Π²Π½Π΅ΡΡΠ²Π°ΡΠ΅ΡΠΎ WAL Π½Π°Π²ΠΈΡΡΠΈΠ½Π° ΡΠ΅ ΡΠ»ΡΡΠΈΠ»ΠΎ ΠΏΡΠ΅Π΄ Π΄Π° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈ ΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ°. ΠΠ° 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, ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ fio, ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΠΏΡΠ»Π°ΡΠ½Π° Π°Π»Π°ΡΠΊΠ° Π·Π° ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° Π²ΡΠΈΡΡΠ²Π°ΡΠ΅ Π/Π. Π’ΡΠ΅Π±Π° Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠΌΠ½ΠΈ Π΄Π΅ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Π½Π° Π΄ΠΈΡΠΊΠΎΡ ΠΌΠΎΠΆΠ°Ρ Π΄Π° Π±ΠΈΠ΄Π°Ρ ΠΌΠ½ΠΎΠ³Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ: ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈ ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈ, ΠΌΠ½ΠΎΠ³Ρ ΠΊΠ»Π°ΡΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈ ΠΏΠΎΠ²ΠΈΡΠΈ ΠΈΡΠ½. ΠΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ°, fio Π΅ Π΄ΠΎΡΡΠ° ΡΠ΅ΡΠΊΠΎ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ. ΠΠΌΠ° ΠΌΠ½ΠΎΠ³Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ, Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Π½Π° Π½ΠΈΠ²Π½ΠΈΡΠ΅ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Π°Ρ ΠΌΠ½ΠΎΠ³Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π/Π ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ°. ΠΠ° Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅ΡΠ΅ ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΈ Π±ΡΠΎΡΠΊΠΈ Π·Π° ΠΈΡΠ½.
ΠΠ°ΡΠΎΠ°, fio ΡΡΠ΅Π±Π°, ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, Π΄Π° ΡΠΎΠ·Π΄Π°Π΄Π΅ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ Π²ΠΎ ΡΠΎΡΠΌΠ° Π½Π° ΡΠ΅ΡΠΈΡΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΠ° Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ°, ΡΠ΅ΠΊΠΎΠ΅ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΠ΅ ΡΠ΅ ΡΠ΅ ΡΠΎΡΡΠΎΠΈ ΠΎΠ΄ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈ ΠΏΠΎΠ²ΠΈΠΊ
ΠΠΎΡΡΠΎ ΡΠΎΠΊΠΌΡ ΡΠΈΠΎ ΠΈ ΠΊΠ°ΠΊΠΎ Π½Π°ΡΡΠΈΠ²ΠΌΠ΅ Π΄Π° Π³ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΠΌΠ΅
ΠΠΎ ΠΎΠ²ΠΎΡ ΠΏΠΎΡΡ, ΠΎΠΏΠΈΡΡΠ²Π°ΠΌΠ΅ Π²ΠΈΡΡΠΈΠ½ΡΠΊΠΈ ΡΠ»ΡΡΠ°Ρ. ΠΠΌΠ°ΠΌΠ΅ ΠΊΠ»Π°ΡΡΠ΅Ρ
ΠΠΎ, Π·Π° ΠΎΠ²Π° ΡΡΠ΅Π±Π°ΡΠ΅ Π΄Π° ΡΠ΅ ΡΠ΅ΡΠ°Ρ Π΄Π²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΡΠ²ΠΎ, ΠΊΠ°ΠΊΠΎ ΠΈΠ·Π³Π»Π΅Π΄Π° Π/Π ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ΡΠΎ ΡΡΠΎ Π³ΠΎ ΡΠΎΠ·Π΄Π°Π²Π° etcd ΠΏΡΠΈ ΠΏΠΈΡΡΠ²Π°ΡΠ΅ΡΠΎ Π²ΠΎ WAL? ΠΠΎΠΈ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈ ΠΏΠΎΠ²ΠΈΡΠΈ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ? ΠΠΎΡΠ° Π΅ Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°ΡΠ° Π½Π° Π·Π°ΠΏΠΈΡΠΈΡΠ΅? ΠΡΠΎΡΠΎ, Π°ΠΊΠΎ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠΈΠΌΠ΅ Π½Π° ΠΎΠ²ΠΈΠ΅ ΠΏΡΠ°ΡΠ°ΡΠ°, ΠΊΠ°ΠΊΠΎ Π΄Π° ΡΠ΅ΠΏΡΠΎΠ΄ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΠ»ΠΈΡΠ΅Π½ ΠΎΠ±Π΅ΠΌ Π½Π° ΡΠ°Π±ΠΎΡΠ° ΡΠΎ fio? ΠΠ΅ Π·Π°Π±ΠΎΡΠ°Π²Π°ΡΡΠ΅ Π΄Π΅ΠΊΠ° fio Π΅ ΠΌΠ½ΠΎΠ³Ρ ΡΠ»Π΅ΠΊΡΠΈΠ±ΠΈΠ»Π½Π° Π°Π»Π°ΡΠΊΠ° ΡΠΎ ΠΌΠ½ΠΎΠ³Ρ ΠΎΠΏΡΠΈΠΈ. ΠΠΈ ΡΠ΅ΡΠΈΠ²ΠΌΠ΅ Π΄Π²Π°ΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎ Π΅Π΄Π΅Π½ ΠΏΡΠΈΡΡΠ°ΠΏ - ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π³ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅
ΠΡΠ²ΠΎ ΠΊΠΎΡΠΈΡΡΠ΅Π²ΠΌΠ΅ strace Π·Π° Π΄Π° Π³ΠΎ ΠΈΡΡΡΠ°ΠΆΠΈΠΌΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΡ etcd Π·Π° Kubernetes ΠΊΠΎΠ³Π° Π½Π΅ΠΌΠ°ΡΠ΅ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ. ΠΠΈΠ΄ΠΎΠ²ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΡΠΊΠΎΡΠΎ ΡΠΈΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π½Π° WAL Π±Π΅Π° ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ½ΠΎ ΡΠΎ ΠΈΡΡΠ° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°: 2200β2400 Π±Π°ΡΡΠΈ. ΠΠ°ΡΠΎΠ°, Π²ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Π½Π° ΠΏΠΎΡΠ΅ΡΠΎΠΊΠΎΡ Π½Π° ΠΏΠΎΡΡΠΎΡ, Π³ΠΎ Π½Π°Π²Π΅Π΄ΠΎΠ²ΠΌΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°ΡΠΎΡ -bs=2300 (bs Π·Π½Π°ΡΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π° Π²ΠΎ Π±Π°ΡΡΠΈ Π·Π° ΡΠ΅ΠΊΠΎΡ ΡΠΈΠΎ Π·Π°ΠΏΠΈΡ). ΠΠΌΠ°ΡΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π΄Π΅ΠΊΠ° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°ΡΠ° Π½Π° Π·Π°ΠΏΠΈΡΠΎΡ etcd Π·Π°Π²ΠΈΡΠΈ ΠΎΠ΄ Π²Π΅ΡΠ·ΠΈΡΠ°ΡΠ° etcd, Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΠ°ΡΠ°, Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ ΠΈΡΠ½., ΠΈ Π²Π»ΠΈΡΠ°Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΡΠ°Π΅ΡΠ΅ΡΠΎ Π½Π° fdatasync. ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΡΠ»ΠΈΡΠ½ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΠΎ, ΠΈΡΠΏΠΈΡΠ°ΡΡΠ΅ Π³ΠΈ Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΈ ΠΈΡΠ½.Π΄.
ΠΠΎΡΠΎΠ°, Π·Π° Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅ΠΌΠ΅ Π΄ΠΎΠ±ΡΠ° ΠΈΠ΄Π΅ΡΠ° Π·Π° ΡΠΎΠ° ΡΡΠΎ ΠΏΡΠ°Π²ΠΈ Π΄Π°ΡΠΎΡΠ΅ΡΠ½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ etcd, Π³ΠΎ Π·Π°ΠΏΠΎΡΠ½Π°Π²ΠΌΠ΅ ΡΠΎ strace ΠΈ ΠΎΠΏΡΠΈΠΈΡΠ΅ -ffttT. ΠΠ°ΡΠΎΠ°, ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΠΎΠ²ΠΌΠ΅ Π΄Π° Π³ΠΈ ΠΈΡΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π΅ΡΡΠΊΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΈ ΠΈ Π΄Π° Π³ΠΎ ΡΠ½ΠΈΠΌΠΈΠΌΠ΅ ΠΈΠ·Π»Π΅Π·ΠΎΡ ΠΎΠ΄ ΡΠ΅ΠΊΠΎΡ ΠΎΠ΄ Π½ΠΈΠ² Π²ΠΎ ΠΏΠΎΡΠ΅Π±Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°, Π° ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅ΠΌΠ΅ Π΄Π΅ΡΠ°Π»Π½ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ°ΠΈ Π·Π° ΠΏΠΎΡΠ΅ΡΠΎΠΊΠΎΡ ΠΈ Π²ΡΠ΅ΠΌΠ΅ΡΡΠ°Π΅ΡΠ΅ΡΠΎ Π½Π° ΡΠ΅ΠΊΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈ ΠΏΠΎΠ²ΠΈΠΊ. ΠΠΎ ΠΊΠΎΡΠΈΡΡΠ΅Π²ΠΌΠ΅ lsof Π·Π° Π΄Π° ΡΠ° ΠΏΠΎΡΠ²ΡΠ΄ΠΈΠΌΠ΅ Π½Π°ΡΠ°ΡΠ° Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° ΠΈΠ·Π»Π΅Π·ΠΎΡ Π½Π° ΡΡΠ°ΡΠ°ΡΠ° ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌΠ΅ ΠΊΠΎΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° ΠΊΠΎΡΠ° ΡΠ΅Π». Π’Π°ΠΊΠ°, ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° ΡΡΠ°ΡΡ ΡΠ΅ Π΄ΠΎΠ±ΠΈΠ΅Π½ΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΏΡΠΈΠΊΠ°ΠΆΠ°Π½ΠΈ ΠΏΠΎΠ³ΠΎΡΠ΅. Π‘ΡΠ°ΡΠΈΡΡΠΈΠΊΠ°ΡΠ° Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡΠ° ΠΏΠΎΡΠ²ΡΠ΄ΠΈ Π΄Π΅ΠΊΠ° wal_fsync_duration_seconds ΠΎΠ΄ etcd Π΅ ΠΊΠΎΠ½Π·ΠΈΡΡΠ΅Π½ΡΠ½Π° ΡΠΎ ΠΏΠΎΠ²ΠΈΡΠΈΡΠ΅ fdatasync ΡΠΎ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΈ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ WAL.
ΠΠΎΠΌΠΈΠ½Π°Π²ΠΌΠ΅ Π½ΠΈΠ· Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°ΡΠ° Π·Π° fio ΠΈ ΠΈΠ·Π±ΡΠ°Π²ΠΌΠ΅ ΠΎΠΏΡΠΈΠΈ Π·Π° Π½Π°ΡΠ°ΡΠ° ΡΠΊΡΠΈΠΏΡΠ°, ΡΠ°ΠΊΠ° ΡΡΠΎ fio ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ ΡΠ»ΠΈΡΠ½ΠΎ Π½Π° etcd. ΠΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ²ΠΌΠ΅ ΠΈ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈΡΠ΅ ΠΏΠΎΠ²ΠΈΡΠΈ ΠΈ Π½ΠΈΠ²Π½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ΡΡΠ°Π΅ΡΠ΅ ΡΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° fio ΠΎΠ΄ strace, ΡΠ»ΠΈΡΠ½ΠΎ Π½Π° etcd.
ΠΠ½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΎ ΡΠ° ΠΈΠ·Π±ΡΠ°Π²ΠΌΠ΅ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠ° Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°ΡΠΎΡ --size Π·Π° Π΄Π° Π³ΠΎ ΠΏΡΠ΅ΡΡΡΠ°Π²ΠΈ ΡΠ΅Π»ΠΎΡΠΎ I/O ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ ΠΎΠ΄ fio. ΠΠΎ Π½Π°ΡΠΈΠΎΡ ΡΠ»ΡΡΠ°Ρ, ΠΎΠ²Π° Π΅ Π²ΠΊΡΠΏΠ½ΠΈΠΎΡ Π±ΡΠΎΡ Π½Π° Π±Π°ΡΡΠΈ Π·Π°ΠΏΠΈΡΠ°Π½ΠΈ Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ. Π‘Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ° Π΄Π΅ΠΊΠ° Π΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»Π½ΠΎ Π½Π° Π±ΡΠΎΡΠΎΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈ ΠΏΠΎΠ²ΠΈΡΠΈ Π·Π° ΠΏΠΈΡΡΠ²Π°ΡΠ΅ (ΠΈ fdatasync). ΠΠ° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π° Π²ΡΠ΅Π΄Π½ΠΎΡΡ Π½Π° bs, Π±ΡΠΎΡΠΎΡ Π½Π° fdatasync ΠΏΠΎΠ²ΠΈΡΠΈ = Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°/Π±Ρ. ΠΠΈΠ΄Π΅ΡΡΠΈ Π±Π΅Π²ΠΌΠ΅ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΈΡΠ°Π½ΠΈ Π·Π° ΠΏΠ΅ΡΡΠ΅Π½ΡΠΈΠ»ΠΎΡ, ΠΌΠΎΡΠ°Π²ΠΌΠ΅ Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΡΠΈ Π·Π° Π΄Π° Π±ΠΈΠ΄Π΅ΠΌΠ΅ ΡΠΈΠ³ΡΡΠ½ΠΈ, ΠΈ ΠΏΡΠ΅ΡΠΌΠ΅ΡΠ°Π²ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΡΠ΅ Π½ΠΈ Π±ΠΈΠ΄Π°Ρ Π΄ΠΎΠ²ΠΎΠ»Π½ΠΈ 10^4 (ΡΠΎΠ° ΡΠ΅ 22 ΠΌΠ΅Π±ΠΈΠ±Π°ΡΡΠΈ). ΠΠΊΠΎ --size Π΅ ΠΏΠΎΠΌΠ°Π»Π°, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ°Π²Π°Ρ ΠΎΠ΄Π΄Π°Π»Π΅ΡΠ΅Π½ΠΈ (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΠΊΠΎΠ»ΠΊΡ fdatasync ΠΏΠΎΠ²ΠΈΡΠΈ ΡΡΠ°Π°Ρ ΠΏΠΎΠ΄ΠΎΠ»Π³ΠΎ ΠΎΠ΄ Π²ΠΎΠΎΠ±ΠΈΡΠ°Π΅Π½ΠΎΡΠΎ ΠΈ Π²Π»ΠΈΡΠ°Π°Ρ Π½Π° 99-ΠΎΡ ΠΏΠ΅ΡΡΠ΅Π½ΡΠΈΠ»).
ΠΠ±ΠΈΠ΄Π΅ΡΠ΅ ΡΠ΅ ΡΠ°ΠΌΠΈ
ΠΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ°Π²ΠΌΠ΅ ΠΊΠ°ΠΊΠΎ Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ fio ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ Π΄Π°Π»ΠΈ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ΡΠΎ Π΅ Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ Π±ΡΠ·ΠΎ Π·Π° etcd Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π΄ΠΎΠ±ΡΠΎ. Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΌΠΈ Π΄Π° Π³ΠΎ ΠΈΡΠΏΡΠΎΠ±Π°ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΈΡΡΡΠ΅Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ ΡΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π½Π° SSD
ΠΠ·Π²ΠΎΡ: www.habr.com