ืžื”ื™ืจื•ืช ืื—ืกื•ืŸ ืžืชืื™ืžื” ืœ- etcd? ืชืฉืืœ ืืช ืคื™ื•

ืžื”ื™ืจื•ืช ืื—ืกื•ืŸ ืžืชืื™ืžื” ืœ- etcd? ืชืฉืืœ ืืช ืคื™ื•

ืกื™ืคื•ืจ ืงืฆืจ ืขืœ ืคื™ื• ื•ื›ื•'

ื‘ื™ืฆื•ืขื™ ืืฉื›ื•ืœ ื•ื›ื• ' ืชืœื•ื™ ื‘ืžื™ื“ื” ืจื‘ื” ื‘ื‘ื™ืฆื•ืขื™ ื”ืื—ืกื•ืŸ ืฉืœื•. etcd ืžื™ื™ืฆื ื›ืžื” ืžื“ื“ื™ื ืœ ืคืจื•ืžืชืื•ืกื›ื“ื™ ืœืกืคืง ืืช ืžื™ื“ืข ื‘ื™ืฆื•ืขื™ ื”ืื—ืกื•ืŸ ื”ืจืฆื•ื™. ืœื“ื•ื’ืžื”, ื”ืžื“ื“ wal_fsync_duration_seconds. ื”ืชื™ืขื•ื“ ืขื‘ื•ืจ etcd ืื•ืžืจ: ื›ื“ื™ ืฉืื—ืกื•ืŸ ื™ื™ื—ืฉื‘ ืœืžื”ื™ืจ ืžืกืคื™ืง, ื”ืื—ื•ื–ื•ืŸ ื”-99 ืฉืœ ืžื“ื“ ื–ื” ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืคื—ื•ืช ืž-10 ืืœืคื™ื•ืช ื”ืฉื ื™ื™ื”. ืื ืืชื” ืžืชื›ื ืŸ ืœื”ืคืขื™ืœ ืืฉื›ื•ืœ etcd ื‘ืžื›ื•ื ื•ืช ืœื™ื ื•ืงืก ื•ื‘ืจืฆื•ื ืš ืœื”ืขืจื™ืš ืื ื”ืื—ืกื•ืŸ ืฉืœืš ืžื”ื™ืจ ืžืกืคื™ืง (ืœืžืฉืœ SSD), ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ืคื™ื• ื”ื•ื ื›ืœื™ ืคื•ืคื•ืœืจื™ ืœื‘ื“ื™ืงืช ืคืขื•ืœื•ืช I/O. ื”ืคืขืœ ืืช ื”ืคืงื•ื“ื” ื”ื‘ืื”, ื›ืืฉืจ test-data ื”ื™ื ื”ืกืคืจื™ื™ื” ืžืชื—ืช ืœื ืงื•ื“ืช ื”ื˜ืขื™ื ื” ืฉืœ ื”ืื—ืกื•ืŸ:

fio --rw=write --ioengine=sync --fdatasync=1 --directory=test-data --size=22m --bs=2300 --name=mytest

ืืชื” ืจืง ืฆืจื™ืš ืœื”ืกืชื›ืœ ืขืœ ื”ืชื•ืฆืื•ืช ื•ืœื‘ื“ื•ืง ืฉื”ืื—ื•ื–ื•ืŸ ื”-99 ืฉืœ ืžืฉืš ื”ื–ืžืŸ fdatasync ืคื—ื•ืช ืž-10 ืืœืคื™ื•ืช ื”ืฉื ื™ื™ื”. ืื ื›ืŸ, ื™ืฉ ืœืš ืื—ืกื•ืŸ ืžื”ื™ืจ ืœืžื“ื™. ื”ื ื” ื“ื•ื’ืžื” ืœืชื•ืฆืื•ืช:

  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.
  • ื‘ืžื”ืœืš ื”ื‘ื“ื™ืงื”, ื›ืœ ืขื•ืžืก ื”ืงืœื˜/ืคืœื˜ ืžื’ื™ืข ืž-fio. ื‘ืชืจื—ื™ืฉ ืืžื™ืชื™, ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉื™ื”ื™ื• ื‘ืงืฉื•ืช ื›ืชื™ื‘ื” ื ื•ืกืคื•ืช ืœืื—ืกื•ืŸ ืžืœื‘ื“ ืืœื• ื”ืงืฉื•ืจื•ืช ืœ-wal_fsync_duration_seconds. ื”ืขื•ืžืก ื”ื ื•ืกืฃ ื™ื’ื“ื™ืœ ืืช ื”ืขืจืš ืฉืœ wal_fsync_duration_seconds. ืื– ืื ื”ืื—ื•ื–ื•ืŸ ื”-99 ืงืจื•ื‘ ืœ-10ms, ื”ืื—ืกื•ืŸ ืฉืœืš ืื•ื–ืœ ื‘ืžื”ื™ืจื•ืช.
  • ืงื— ืืช ื”ื’ืจืกื” ืคื™ื• ืœื ื ืžื•ืš ืž 3.5 (ื”ืงื•ื“ืžื™ื ืื™ื ื ืžืฆื™ื’ื™ื ืื—ื•ื–ื™ ืžืฉืš fdatasync).
  • ืœืžืขืœื” ื™ืฉ ืจืง ืงื˜ืข ืžื”ืชื•ืฆืื•ืช ืฉืœ fio.

ืกื™ืคื•ืจ ืืจื•ืš ืขืœ ืคื™ื• ื•ื›ื•'

ืžื” ื–ื” WAL ื‘- etcd

ื‘ื“ืจืš ื›ืœืœ ืžืฉืชืžืฉื™ื ื‘ื‘ืกื™ืกื™ ื ืชื•ื ื™ื ื™ื•ืžืŸ ื›ืชื™ื‘ื” ืงื“ื™ืžื”; etcd ืžืฉืชืžืฉ ื‘ื• ื’ื. ืœื ื ื“ื•ืŸ ื›ืืŸ ื‘ืคื™ืจื•ื˜ ื‘ื™ื•ืžืŸ ื”ื›ืชื™ื‘ื” ืงื“ื™ืžื” (WAL). ื“ื™ ืœื ื• ืœื“ืขืช ืฉื›ืœ ื—ื‘ืจ ื‘ืืฉื›ื•ืœ etcd ืฉื•ืžืจ ืื•ืชื• ื‘ืื—ืกื•ืŸ ืžืชืžืฉืš. etcd ื›ื•ืชื‘ ื›ืœ ืคืขื•ืœืช ืžืคืชื—-ืขืจืš (ื›ื’ื•ืŸ ืขื“ื›ื•ืŸ) ืœ-WAL ืœืคื ื™ ื”ื—ืœืชื” ืขืœ ื”ื—ื ื•ืช. ืื ืื—ื“ ืžื—ื‘ืจื™ ื”ืื—ืกื•ืŸ ืงื•ืจืก ื•ืžื•ืคืขืœ ืžื—ื“ืฉ ื‘ื™ืŸ ืชืžื•ื ื•ืช ืžืฆื‘, ื”ื•ื ื™ื›ื•ืœ ืœืฉื—ื–ืจ ื‘ืื•ืคืŸ ืžืงื•ืžื™ ืขืกืงืื•ืช ืžืื– ืชืžื•ื ืช ื”ืžืฆื‘ ื”ืื—ืจื•ื ื” ืขืœ ื™ื“ื™ ืชื•ื›ืŸ WAL.

ื›ืืฉืจ ืœืงื•ื— ืžื•ืกื™ืฃ ืžืคืชื— ืœืžืื’ืจ ืžืคืชื—-ืขืจืš ืื• ืžืขื“ื›ืŸ ืืช ื”ืขืจืš ืฉืœ ืžืคืชื— ืงื™ื™ื, ื•ื›ื•' ืžืชืขื“ ืืช ื”ืคืขื•ืœื” ื‘-WAL, ืฉื”ื•ื ืงื•ื‘ืฅ ืจื’ื™ืœ ื‘ืื—ืกื•ืŸ ืžืชืžืฉืš. etcd ื—ื™ื™ื‘ ืœื”ื™ื•ืช ื‘ื˜ื•ื— ืœื—ืœื•ื˜ื™ืŸ ืฉื›ื ื™ืกืช ื”-WAL ืื›ืŸ ื”ืชืจื—ืฉื” ืœืคื ื™ ื”ืžืฉืš ื”ืขื™ื‘ื•ื“. ื‘ืœื™ื ื•ืงืก, ืงืจื™ืืช ืžืขืจื›ืช ืื—ืช ืื™ื ื” ืžืกืคื™ืงื” ืœืฉื ื›ืš. ืœื›ืชื•ื‘, ืžื›ื™ื•ื•ืŸ ืฉื”ื›ืชื™ื‘ื” ื‘ืคื•ืขืœ ืœืื—ืกื•ืŸ ืคื™ื–ื™ ืขืฉื•ื™ื” ืœื”ืชืขื›ื‘. ืœื“ื•ื’ืžื”, ืœื™ื ื•ืงืก ืขืฉื•ื™ื” ืœืื—ืกืŸ ืขืจืš WAL ื‘ืžื˜ืžื•ืŸ ื‘ื–ื™ื›ืจื•ืŸ ื”ืœื™ื‘ื” (ื›ื’ื•ืŸ ืžื˜ืžื•ืŸ ืขืžื•ื“ื™ื) ืœืžืฉืš ื–ืžืŸ ืžื”. ื•ื›ื“ื™ ืฉื”ื ืชื•ื ื™ื ื™ื™ื›ืชื‘ื• ื‘ืžื“ื•ื™ืง ืœืื—ืกื•ืŸ ืžืชืžืฉืš, ื™ืฉ ืฆื•ืจืš ื‘ืงืจื™ืืช ืžืขืจื›ืช fdatasync ืœืื—ืจ ื”ื›ืชื™ื‘ื”, ื•-etcd ืคืฉื•ื˜ ืžืฉืชืžืฉ ื‘ื• (ื›ืคื™ ืฉื ื™ืชืŸ ืœืจืื•ืช ื‘ืชื•ืฆืืช ื”ืขื‘ื•ื“ื” ืฉื˜ืจืก, ื›ืืฉืจ 8 ื”ื•ื ืžืชืืจ ืงื•ื‘ืฅ WAL):

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 ื™ื™ืคื’ืขื•. ื”ืชื™ืขื•ื“ ืขื‘ื•ืจ etcd ืื•ืžืจืฉื”ืื—ืกื•ืŸ ื ื—ืฉื‘ ืœืžื”ื™ืจ ืžืกืคื™ืง ืื, ื‘ืื—ื•ื–ื•ืŸ ื”-99, ืงืจื™ืื•ืช fdatasync ืœื•ืงื—ื•ืช ืคื—ื•ืช ืž-10ms ืœื›ืชื•ื‘ ืœืงื•ื‘ืฅ WAL. ื™ืฉื ื ืžื“ื“ื™ื ืฉื™ืžื•ืฉื™ื™ื ื ื•ืกืคื™ื ืœืื—ืกื•ืŸ, ืื‘ืœ ื‘ืคื•ืกื˜ ื”ื–ื” ืื ื—ื ื• ืžื“ื‘ืจื™ื ืจืง ืขืœ ื”ืžื“ื“ ื”ื–ื”.

ื”ืขืจื›ืช ืื—ืกื•ืŸ ืขื fio

ืื ืืชื” ืฆืจื™ืš ืœื”ืขืจื™ืš ืื ื”ืื—ืกื•ืŸ ืฉืœืš ืžืชืื™ื ืœ-etcd, ื”ืฉืชืžืฉ ื‘-fio, ื›ืœื™ ืคื•ืคื•ืœืจื™ ืžืื•ื“ ืœื‘ื“ื™ืงืช ืขื•ืžืกื™ I/O. ื™ืฉ ืœื–ื›ื•ืจ ืฉืคืขื•ืœื•ืช ื”ื“ื™ืกืง ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ืฉื•ื ื•ืช ืžืื•ื“: ืกื™ื ื›ืจื•ื ื™ ื•ื-ืกื™ื ื›ืจื•ื ื™, ืžื—ืœืงื•ืช ืจื‘ื•ืช ืฉืœ ืงืจื™ืื•ืช ืžืขืจื›ืช ื•ื›ื•'. ื›ืชื•ืฆืื” ืžื›ืš, ืคื™o ื“ื™ ืงืฉื” ืœืฉื™ืžื•ืฉ. ื™ืฉ ืœื• ืคืจืžื˜ืจื™ื ืจื‘ื™ื, ื•ืฉื™ืœื•ื‘ื™ื ืฉื•ื ื™ื ืฉืœ ื”ืขืจื›ื™ื ืฉืœื”ื ืžื™ื™ืฆืจื™ื ืขื•ืžืกื™ ืขื‘ื•ื“ื” I/O ืฉื•ื ื™ื ืžืื•ื“. ื›ื“ื™ ืœืงื‘ืœ ื ืชื•ื ื™ื ื ืื•ืชื™ื ืขื‘ื•ืจ etcd, ืขืœื™ืš ืœื•ื•ื“ื ืฉืขื•ืžืก ื”ื›ืชื™ื‘ื” ืœื‘ื“ื™ืงื” ืž-fio ืงืจื•ื‘ ื›ื›ืœ ื”ืืคืฉืจ ืœืขื•ืžืก ื‘ืคื•ืขืœ ืž-etcd ื‘ืขืช ื›ืชื™ื‘ืช ืงื‘ืฆื™ WAL.

ืœื›ืŸ, fio ืฆืจื™ืš, ืœื›ืœ ื”ืคื—ื•ืช, ืœื™ืฆื•ืจ ืขื•ืžืก ืฉืœ ืกื“ืจื” ืฉืœ ื›ืชื™ื‘ื” ืจืฆื™ืคื” ืœืงื•ื‘ืฅ, ื›ืœ ื›ืชื™ื‘ื” ืชื”ื™ื” ืžื•ืจื›ื‘ืช ืžืงืจื™ืื” ืœืžืขืจื›ืช ืœื›ืชื•ื‘ื•ืื—ืจื™ื• ื”ืงืจื™ืื” ืœืžืขืจื›ืช fdatasync. ื›ืชื™ื‘ื” ืจืฆื™ืคื” ืœ-fio ื“ื•ืจืฉืช ืืช ื”ืืคืฉืจื•ืช --rw=write. ืœ-fio ืœื”ืฉืชืžืฉ ื‘ืžืขืจื›ืช ื”ื›ืชื™ื‘ื” ื”ืชืงืฉืจ ื‘ื–ืžืŸ ื”ื›ืชื™ื‘ื”, ื‘ืžืงื•ื ืœื›ืชื•ื‘, ืขืœื™ืš ืœืฆื™ื™ืŸ ืืช ื”ืคืจืžื˜ืจ --ioengine=sync. ืœื‘ืกื•ืฃ, ื›ื“ื™ ืœืงืจื•ื ืœ-fdatasync ืœืื—ืจ ื›ืœ ื›ืชื™ื‘ื”, ืขืœื™ืš ืœื”ื•ืกื™ืฃ ืืช ื”ืคืจืžื˜ืจ --fdatasync=1. ืฉืชื™ ื”ืืคืฉืจื•ื™ื•ืช ื”ืื—ืจื•ืช ื‘ื“ื•ื’ืžื” ื–ื• (--size ื•-bs) ื”ืŸ ืกืคืฆื™ืคื™ื•ืช ืœืกืงืจื™ืคื˜. ื‘ื—ืœืง ื”ื‘ื ื ืจืื” ืœืš ื›ื™ืฆื“ ืœื”ื’ื“ื™ืจ ืื•ืชื.

ืœืžื” ื‘ื“ื™ื•ืง ืคื™ื• ื•ืื™ืš ืœืžื“ื ื• ืœื”ื’ื“ื™ืจ ืืช ื–ื”

ื‘ืคื•ืกื˜ ื–ื”, ืื ื• ืžืชืืจื™ื ืžืงืจื” ืืžื™ืชื™. ื™ืฉ ืœื ื• ืืฉื›ื•ืœ ืงื•ื‘ืจื ื˜ v1.13 ืืฉืจ ื ื™ื˜ืจื ื• ืขื ืคืจื•ืžืชืื•ืก. etcd v3.2.24 ื”ืชืืจื— ื‘-SSD. ืžื“ื“ื™ Etcd ื”ืจืื• ื”ืฉื”ื™ื•ืช ืฉืœ fdatasync ื’ื‘ื•ื”ื•ืช ืžื“ื™, ืืคื™ืœื• ื›ืฉื”ืืฉื›ื•ืœ ืœื ืขืฉื” ื›ืœื•ื. ื”ืžื“ื“ื™ื ื”ื™ื• ืžื•ื–ืจื™ื ื•ืœื ืžืžืฉ ื™ื“ืขื ื• ืžื” ื”ืžืฉืžืขื•ืช ืฉืœื”ื. ื”ืืฉื›ื•ืœ ื”ื™ื” ืžื•ืจื›ื‘ ืžืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช, ื”ื™ื” ืฆื•ืจืš ืœื”ื‘ื™ืŸ ืžื” ื”ื‘ืขื™ื”: ื‘ื›ื•ื ื ื™ SSD ืคื™ื–ื™ื™ื ืื• ื‘ืฉื›ื‘ืช ื”ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื”. ื‘ื ื•ืกืฃ, ื‘ื™ืฆืขื ื• ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืฉื™ื ื•ื™ื™ื ื‘ืชืฆื•ืจืช ื”ื—ื•ืžืจื” ื•ื”ืชื•ื›ื ื”, ื•ื”ื™ื™ื ื• ืฆืจื™ื›ื™ื ื“ืจืš ืœื”ืขืจื™ืš ืืช ื”ืชื•ืฆืื•ืช ืฉืœื”ื. ื ื•ื›ืœ ืœื”ืจื™ืฅ ื•ื›ื•' ื‘ื›ืœ ืชืฆื•ืจื” ื•ืœื”ืกืชื›ืœ ืขืœ ืžื“ื“ื™ Prometheus, ืื‘ืœ ื–ื” ื™ื•ืชืจ ืžื“ื™ ื˜ืจื—ื”. ื—ื™ืคืฉื ื• ื“ืจืš ืคืฉื•ื˜ื” ืœืžื“ื™ ืœื”ืขืจื™ืš ืชืฆื•ืจื” ืกืคืฆื™ืคื™ืช. ืจืฆื™ื ื• ืœื‘ื“ื•ืง ืื ืื ื—ื ื• ืžื‘ื™ื ื™ื ื ื›ื•ืŸ ืืช ืžื“ื“ื™ Prometheus ืž-etcd.

ืื‘ืœ ื‘ืฉื‘ื™ืœ ื–ื”, ื”ื™ื• ืฆืจื™ื›ื™ื ืœืคืชื•ืจ ืฉืชื™ ื‘ืขื™ื•ืช. ืจืืฉื™ืช, ืื™ืš ื ืจืื” ืขื•ืžืก ื”-I/O ืฉื™ื•ืฆืจ ื•ื›ื•' ื‘ืขืช ื›ืชื™ื‘ื” ืœ-WAL? ื‘ืื™ืœื• ืฉื™ื—ื•ืช ืžืขืจื›ืช ืžืฉืชืžืฉื™ื? ืžื” ื’ื•ื“ืœ ื”ืจืฉื•ืžื•ืช? ืฉื ื™ืช, ืื ื ืขื ื” ืขืœ ื”ืฉืืœื•ืช ื”ืืœื”, ืื™ืš ื ื™ืฆื•ืจ ืขื•ืžืก ืขื‘ื•ื“ื” ื“ื•ืžื” ืขื fio? ืืœ ืชืฉื›ื— ืฉ-fio ื”ื•ื ื›ืœื™ ืžืื•ื“ ื’ืžื™ืฉ ืขื ืืคืฉืจื•ื™ื•ืช ืจื‘ื•ืช. ืคืชืจื ื• ืืช ืฉืชื™ ื”ื‘ืขื™ื•ืช ื‘ื’ื™ืฉื” ืื—ืช - ื‘ืืžืฆืขื•ืช ื”ืคืงื•ื“ื•ืช ืœืกื•ืฃ ะธ ืฉื˜ืจืก. lsof ืžืคืจื˜ ืืช ื›ืœ ืžืชืืจื™ ื”ืงื‘ืฆื™ื ืฉื‘ื”ื ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืชื”ืœื™ืš ื•ื”ืงื‘ืฆื™ื ื”ืžืฉื•ื™ื›ื™ื ืืœื™ื”ื. ื•ืขื strace, ืืชื” ื™ื›ื•ืœ ืœื‘ื—ื•ืŸ ืชื”ืœื™ืš ืฉื›ื‘ืจ ืคื•ืขืœ, ืื• ืœื”ืชื—ื™ืœ ืชื”ืœื™ืš ื•ืœื‘ื—ื•ืŸ ืื•ืชื•. strace ืžื“ืคื™ืก ืืช ื›ืœ ืงืจื™ืื•ืช ื”ืžืขืจื›ืช ืžื”ืชื”ืœื™ืš ื”ื ื‘ื“ืง (ื•ืชื”ืœื™ื›ื™ ื”ื™ืœื“ ืฉืœื•). ื”ืื—ืจื•ืŸ ื—ืฉื•ื‘ ืžืื•ื“, ืžื›ื™ื•ื•ืŸ ืฉ-etcd ืคืฉื•ื˜ ื ื•ืงื˜ ื‘ื’ื™ืฉื” ื“ื•ืžื”.

ื”ืฉืชืžืฉื ื• ืœืจืืฉื•ื ื” ื‘-strace ื›ื“ื™ ืœื—ืงื•ืจ ืืช ืฉืจืช etcd ืขื‘ื•ืจ Kubernetes ื›ืืฉืจ ืœื ื”ื™ื” ืขื•ืžืก ืขืœ ื”ืืฉื›ื•ืœ. ืจืื™ื ื• ืฉื›ืžืขื˜ ื›ืœ ืจืฉื•ืžื•ืช ื”-WAL ื”ื™ื• ื‘ืขืจืš ื‘ืื•ืชื• ื’ื•ื“ืœ: 2200โ€“2400 ื‘ืชื™ื. ืœื›ืŸ, ื‘ืคืงื•ื“ื” ื‘ืชื—ื™ืœืช ื”ืคื•ืกื˜, ืฆื™ื™ื ื• ืืช ื”ืคืจืžื˜ืจ -bs=2300 (bs ืคื™ืจื•ืฉื• ื”ื’ื•ื“ืœ ื‘ื‘ื™ื™ื˜ื™ื ืขื‘ื•ืจ ื›ืœ ืขืจืš fio). ืฉื™ืžื• ืœื‘ ืฉื’ื•ื“ืœ ื”ืขืจืš etcd ืชืœื•ื™ ื‘ื’ืจืกืช etcd, ื”ืชืคืœื’ื•ืช, ืขืจื›ื™ ืคืจืžื˜ืจื™ื ื•ื›ื•', ื•ืžืฉืคื™ืข ืขืœ ืžืฉืš ื”-fdatasync. ืื ื™ืฉ ืœืš ืชืจื—ื™ืฉ ื“ื•ืžื”, ื‘ื“ื•ืง ืืช ืชื”ืœื™ื›ื™ ื”-etcd ืฉืœืš ืขื strace ื›ื“ื™ ืœื’ืœื•ืช ืืช ื”ืžืกืคืจื™ื ื”ืžื“ื•ื™ืงื™ื.

ืœืื—ืจ ืžื›ืŸ, ื›ื“ื™ ืœืงื‘ืœ ืžื•ืฉื’ ื˜ื•ื‘ ืขืœ ืžื” ืฉืžืขืจื›ืช ื”ืงื‘ืฆื™ื etcd ืขื•ืฉื”, ื”ืชื—ืœื ื• ืื•ืชื” ืขื ื”ืืคืฉืจื•ื™ื•ืช strace ื•-ffttT. ืื– ื ื™ืกื™ื ื• ืœื‘ื—ื•ืŸ ืืช ืชื”ืœื™ื›ื™ ื”ื™ืœื“ ื•ืœืชืขื“ ืืช ื”ืคืœื˜ ืฉืœ ื›ืœ ืื—ื“ ืžื”ื ื‘ืงื•ื‘ืฅ ื ืคืจื“, ื•ื’ื ืœืงื‘ืœ ื“ื™ื•ื•ื—ื™ื ืžืคื•ืจื˜ื™ื ืขืœ ื”ื”ืชื—ืœื” ื•ืžืฉืš ื›ืœ ืงืจื™ืืช ืžืขืจื›ืช. ื”ืฉืชืžืฉื ื• ื‘-lsof ื›ื“ื™ ืœืืฉืจ ืืช ื”ื ื™ืชื•ื— ืฉืœื ื• ืฉืœ ืคืœื˜ ื”-strace ื•ืœืจืื•ืช ื‘ืื™ื–ื” ืžืชืืจ ืงื•ื‘ืฅ ื ืขืฉื” ืฉื™ืžื•ืฉ ืœืื™ื–ื• ืžื˜ืจื”. ืื– ื‘ืขื–ืจืช strace ื”ืชืงื‘ืœื• ื”ืชื•ืฆืื•ืช ื”ืžื•ืฆื’ื•ืช ืœืขื™ืœ. ืกื˜ื˜ื™ืกื˜ื™ืงื•ืช ื–ืžืŸ ืกื ื›ืจื•ืŸ ืื™ืฉืจื• ืฉ-wal_fsync_duration_seconds ืž-etcd ืชื•ืื ืงืจื™ืื•ืช fdatasync ืขื ืžืชืืจื™ ืงื‘ืฆื™ WAL.

ืขื‘ืจื ื• ืขืœ ื”ืชื™ืขื•ื“ ืฉืœ fio ื•ื‘ื—ืจื ื• ืืคืฉืจื•ื™ื•ืช ืœืกืงืจื™ืคื˜ ืฉืœื ื• ื›ืš ืฉ-fio ื™ืคื™ืง ืขื•ืžืก ื“ื•ืžื” ืœ-etcd. ื‘ื“ืงื ื• ื’ื ืงืจื™ืื•ืช ืžืขืจื›ืช ื•ืžืฉืš ื”ื–ืžืŸ ืฉืœื”ืŸ ืขืœ ื™ื“ื™ ื”ืคืขืœืช fio ืž-strace, ื‘ื“ื•ืžื” ืœ-etcd.

ื‘ื—ืจื ื• ื‘ืงืคื™ื“ื” ืืช ื”ืขืจืš ืฉืœ ื”ืคืจืžื˜ืจ --size ื›ื“ื™ ืœื™ื™ืฆื’ ืืช ื›ืœ ืขื•ืžืก ื”ืงืœื˜/ืคืœื˜ ืž-fio. ื‘ืžืงืจื” ืฉืœื ื•, ื–ื”ื• ื”ืžืกืคืจ ื”ื›ื•ืœืœ ืฉืœ ื‘ืชื™ื ืฉื ื›ืชื‘ื• ืœืื—ืกื•ืŸ. ื”ืชื‘ืจืจ ืฉื–ื” ืขื•ืžื“ ื‘ื™ื—ืก ื™ืฉืจ ืœืžืกืคืจ ืงืจื™ืื•ืช ื”ื›ืชื™ื‘ื” (ื•-fdatasync) ืœืžืขืจื›ืช. ืขื‘ื•ืจ ืขืจืš ืžืกื•ื™ื ืฉืœ bs, ืžืกืคืจ ืงืจื™ืื•ืช fdatasync = size/bs. ืžื›ื™ื•ื•ืŸ ืฉื”ืชืขื ื™ื™ื ื• ื‘ืื—ื•ื–ื•ืŸ, ื”ื™ื™ื ื• ืฆืจื™ื›ื™ื ืœืงื‘ืœ ืžืกืคื™ืง ื“ื’ื™ืžื•ืช ื›ื“ื™ ืœื”ื™ื•ืช ื‘ื˜ื•ื—ื™ื, ื•ื—ื™ืฉื‘ื ื• ืฉ-10^4 ื™ืกืคื™ืงื• ืœื ื• (ื–ื” 22 ืžื‘ื™ื™ื˜). ืื --size ืงื˜ืŸ ื™ื•ืชืจ, ืขืœื•ืœื™ื ืœื”ืชืจื—ืฉ ื—ืจื™ื’ื™ื (ืœื“ื•ื’ืžื”, ืžืกืคืจ ืงืจื™ืื•ืช fdatasync ื ืžืฉื›ื•ืช ื–ืžืŸ ืจื‘ ืžื”ืจื’ื™ืœ ื•ืžืฉืคื™ืขื•ืช ืขืœ ื”ืื—ื•ื–ื•ืŸ ื”-99).

ื ืกื” ื–ืืช ื‘ืขืฆืžืš

ื”ืจืื™ื ื• ืœืš ื›ื™ืฆื“ ืœื”ืฉืชืžืฉ ื‘-fio ื•ืœืจืื•ืช ืื ื”ืื—ืกื•ืŸ ืžื”ื™ืจ ืžืกืคื™ืง ื›ื“ื™ ืฉ-etcd ื™ืคืขืœ ื”ื™ื˜ื‘. ืขื›ืฉื™ื• ืืชื” ื™ื›ื•ืœ ืœื ืกื•ืช ืืช ื–ื” ื‘ืขืฆืžืš ื‘ืืžืฆืขื•ืช, ืœืžืฉืœ, ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ืขื ืื—ืกื•ืŸ SSD ื‘ืคื ื™ื IBM Cloud.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”