ื›ื™ืฆื“ ืœื‘ื“ื•ืง ื“ื™ืกืงื™ื ืขื fio ืœื‘ื™ืฆื•ืขื™ื ืžืกืคืงื™ื ืขื‘ื•ืจ etcd

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

ื›ื™ืฆื“ ืœื‘ื“ื•ืง ื“ื™ืกืงื™ื ืขื fio ืœื‘ื™ืฆื•ืขื™ื ืžืกืคืงื™ื ืขื‘ื•ืจ etcd

ืกื™ื›ื•ื ืงืฆืจ ืฉืœ ื”ืžืืžืจ ื›ื•ืœื•: fio ื•ื›ื•'

ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ืืฉื›ื•ืœ etcd ืชืœื•ื™ื™ื ืžืื•ื“ ื‘ืžื”ื™ืจื•ืช ื”ืื—ืกื•ืŸ ื”ื‘ืกื™ืกื™. etcd ืžื™ื™ืฆืืช ืžื“ื“ื™ Prometheus ืฉื•ื ื™ื ื›ื“ื™ ืœื ื˜ืจ ืืช ื”ื‘ื™ืฆื•ืขื™ื. ืื—ื“ ืžื”ื ื”ื•ื wal_fsync_duration_seconds. ื‘ืชื™ืขื•ื“ ืขื‘ื•ืจ ื•ื›ื•' ื–ื” ืื•ืžืจืฉืื—ืกื•ืŸ ื™ื›ื•ืœ ืœื”ื™ื—ืฉื‘ ืžื”ื™ืจ ืžืกืคื™ืง ืื ื”ืื—ื•ื–ื•ืŸ ื”-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 ืืœืคื™ื•ืช ื”ืฉื ื™ื™ื” ืื ื›ืŸ, ื”ื›ื•ื ืŸ ืฉืœืš ืขื•ื‘ื“ ืžื”ืจ ืžืกืคื™ืง. ื”ื ื” ืคืœื˜ ืœื“ื•ื’ืžื”:

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]

ื›ืžื” ื”ืขืจื•ืช:

  1. ื‘ื“ื•ื’ืžื” ืœืขื™ืœ, ื”ืชืืžื ื• ืืช ื”ืคืจืžื˜ืจื™ื --size ะธ --bs ืœืžืงืจื” ืกืคืฆื™ืคื™. ื›ื“ื™ ืœืงื‘ืœ ืชื•ืฆืื” ืžืฉืžืขื•ืชื™ืช fio, ืฆื™ื™ืŸ ืขืจื›ื™ื ื”ืžืชืื™ืžื™ื ืœืžืงืจื” ื”ืฉื™ืžื•ืฉ ืฉืœืš. ื›ื™ืฆื“ ืœื‘ื—ื•ืจ ืื•ืชื ื™ื™ื“ื•ื ื• ืœื”ืœืŸ.
  2. ื‘ืžื”ืœืš ื”ื‘ื“ื™ืงื” ื‘ืœื‘ื“ fio ื˜ื•ืขืŸ ืืช ืชืช-ืžืขืจื›ืช ื”ื“ื™ืกืง. ื‘ื—ื™ื™ื ื”ืืžื™ืชื™ื™ื, ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉืชื”ืœื™ื›ื™ื ืื—ืจื™ื ื™ื›ืชื‘ื• ืœื“ื™ืกืง (ืžืœื‘ื“ ืืœื• ื”ืงืฉื•ืจื™ื ืœ wal_fsync_duration_seconds). ืขื•ืžืก ื ื•ืกืฃ ื–ื” ื™ื›ื•ืœ ืœื’ื“ื•ืœ wal_fsync_duration_seconds. ื‘ืžื™ืœื™ื ืื—ืจื•ืช, ืื ื”ืื—ื•ื–ื•ืŸ ื”-99 ืžื‘ื“ื™ืงื” ืขื fio, ืจืง ืžืขื˜ ืคื—ื•ืช ืž-10 ืืœืคื™ื•ืช ื”ืฉื ื™ื™ื”, ื™ืฉ ืกื™ื›ื•ื™ ื˜ื•ื‘ ืฉื‘ื™ืฆื•ืขื™ ื”ืื—ืกื•ืŸ ืื™ื ื ืžืกืคื™ืงื™ื.
  3. ืขื‘ื•ืจ ื”ื‘ื“ื™ืงื” ืชืฆื˜ืจืš ืืช ื”ื’ืจืกื” fio ืœื ื ืžื•ืš ืž 3.5ื›ื™ ื’ืจืกืื•ืช ื™ืฉื ื•ืช ื™ื•ืชืจ ืื™ื ืŸ ืฆื•ื‘ืจื•ืช ืชื•ืฆืื•ืช fdatasync ื‘ืฆื•ืจื” ืฉืœ ืื—ื•ื–ื•ื ื™ื.
  4. ื”ืžืกืงื ื” ืœืขื™ืœ ื”ื™ื ืจืง ืงื˜ืข ืงื˜ืŸ ืžื”ืžืกืงื ื” ื”ื›ืœืœื™ืช fio.

ืขื•ื“ ืขืœ fio ื•- etcd

ื›ืžื” ืžื™ืœื™ื ืขืœ WALs ื•ื›ื•'

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

ืœืคื™ื›ืš, ื‘ื›ืœ ืคืขื ืฉืœืงื•ื— ืžื•ืกื™ืฃ ืžืคืชื— ืœืžืื’ืจ ื”-KV ืื• ืžืขื“ื›ืŸ ืืช ื”ืขืจืš ืฉืœ ืžืคืชื— ืงื™ื™ื, ื•ื›ื•' ืžื•ืกื™ืฃ ืืช ืชื™ืื•ืจ ื”ืคืขื•ืœื” ืœ-WAL, ืฉื”ื•ื ืงื•ื‘ืฅ ืจื’ื™ืœ ื‘-persistent store. etcd ื—ื™ื™ื‘ ืœื”ื™ื•ืช ื‘ื˜ื•ื— ื‘-100% ืฉืขืจืš ื”-WAL ืื›ืŸ ื ืฉืžืจ ืœืคื ื™ ืฉืชืžืฉื™ืš. ื›ื“ื™ ืœื”ืฉื™ื’ ื–ืืช ื‘ืœื™ื ื•ืงืก, ื–ื” ืœื ืžืกืคื™ืง ืœื”ืฉืชืžืฉ ื‘ืงืจื™ืืช ื”ืžืขืจื›ืช write, ืฉื›ืŸ ืคืขื•ืœืช ื”ื›ืชื™ื‘ื” ืขืฆืžื” ืœืžื“ื™ื” ื”ืคื™ื–ื™ืช ืขืœื•ืœื” ืœื”ืชืขื›ื‘. ืœื“ื•ื’ืžื”, ืœื™ื ื•ืงืก ืขืฉื•ื™ื” ืœืฉืžื•ืจ ืขืจืš WAL ื‘ืžื˜ืžื•ืŸ ืœื™ื‘ื” ื‘ื–ื™ื›ืจื•ืŸ (ืœืžืฉืœ, ื‘ืžื˜ืžื•ืŸ ื”ื“ืฃ) ืœืžืฉืš ื–ืžืŸ ืžื”. ื›ื“ื™ ืœื•ื•ื“ื ืฉื”ื ืชื•ื ื™ื ื ื›ืชื‘ื™ื ืœืžื“ื™ื”, ื™ืฉ ืœื”ืคืขื™ืœ ืงืจื™ืืช ืžืขืจื›ืช ืœืื—ืจ ื”ื›ืชื™ื‘ื” fdatasync - ื–ื” ื‘ื“ื™ื•ืง ืžื” ืฉ-etcd ืขื•ืฉื” (ื›ืคื™ ืฉื ื™ืชืŸ ืœืจืื•ืช ื‘ืคืœื˜ ื”ื‘ื 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. ื‘ืชื™ืขื•ื“ ื”ืžืื’ืจ ืฆื•ื™ืŸืฉืขื‘ื•ืจ ื‘ื™ืฆื•ืขื™ื ืžืกืคืงื™ื ื™ืฉ ืฆื•ืจืš ื‘ืื—ื•ื–ื•ืŸ 99 ืฉืœ ืžืฉืš ื›ืœ ื”ืฉื™ื—ื•ืช fdatasync ื›ืืฉืจ ื”ื›ืชื™ื‘ื” ืœืงื•ื‘ืฅ WAL ื”ื™ื™ืชื” ืคื—ื•ืช ืž-10 ืืœืคื™ื•ืช ื”ืฉื ื™ื™ื”. ื™ืฉื ื ืžื“ื“ื™ื ืื—ืจื™ื ื”ืงืฉื•ืจื™ื ืœืื—ืกื•ืŸ, ืืš ืžืืžืจ ื–ื” ื™ืชืžืงื“ ื‘ื–ื”.

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

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

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

ืœืžื” ื‘ื—ืจื ื• ื‘-fio ื•ืื™ืš ืœืžื“ื ื• ืื™ืš ืœื”ื’ื“ื™ืจ ืืช ื–ื”

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

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

ื–ื” ื“ืจืฉ ืคืชืจื•ืŸ ืฉืœ ืฉืชื™ ื‘ืขื™ื•ืช:

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

ืคืชืจื ื• ืืช ืฉืชื™ ื”ื‘ืขื™ื•ืช ื‘ืื•ืชื” ื’ื™ืฉื” ืžื‘ื•ืกืกืช ืคืงื•ื“ื•ืช lsof ะธ strace:

  • ืขื lsof ืืชื” ื™ื›ื•ืœ ืœื”ืฆื™ื’ ืืช ื›ืœ ืžืชืืจื™ ื”ืงื‘ืฆื™ื ืฉื‘ื”ื ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืชื”ืœื™ืš, ื›ืžื• ื’ื ืืช ื”ืงื‘ืฆื™ื ืฉื”ื ืžืชื™ื™ื—ืกื™ื ืืœื™ื”ื.
  • ืขื strace ืืชื” ื™ื›ื•ืœ ืœื ืชื— ืชื”ืœื™ืš ืฉื›ื‘ืจ ืคื•ืขืœ ืื• ืœื”ืคืขื™ืœ ืชื”ืœื™ืš ื•ืœืฆืคื•ืช ื‘ื•. ื”ืคืงื•ื“ื” ืžืฆื™ื’ื” ืืช ื›ืœ ืงืจื™ืื•ืช ื”ืžืขืจื›ืช ืฉื ืขืฉื•ืช ื‘ืชื”ืœื™ืš ื–ื” ื•ื‘ืžื™ื“ืช ื”ืฆื•ืจืš, ืืช ืฆืืฆืื™ื”. ื–ื” ื”ืื—ืจื•ืŸ ื—ืฉื•ื‘ ืœืชื”ืœื™ื›ื™ื ืฉืžืชืคืฆืœื™ื, ื•ื›ื•' ื”ื•ื ืชื”ืœื™ืš ื›ื–ื”.

ื”ื“ื‘ืจ ื”ืจืืฉื•ืŸ ืฉืขืฉื™ื ื• ื”ื™ื” ืœื”ืฉืชืžืฉ strace ืœื‘ื—ื•ืŸ ืืช ืฉืจืช ื”-etcd ื‘ืืฉื›ื•ืœ Kubernetes ื‘ื–ืžืŸ ืฉื”ื•ื ืœื ืคืขื™ืœ.

ืœืคื™ื›ืš, ื”ืชื’ืœื” ื›ื™ ื‘ืœื•ืงื™ ื”ื›ืชื™ื‘ื” ื‘-WAL ืžืงื•ื‘ืฆื™ื ื‘ืฆืคื™ืคื•ืช ืจื‘ื”, ืจื•ื‘ื ื‘ื˜ื•ื•ื— ืฉืœ 2200-2400 ื‘ืชื™ื. ื–ื• ื”ืกื™ื‘ื” ืฉื”ืคืงื•ื“ื” ื‘ืชื—ื™ืœืช ืžืืžืจ ื–ื” ืžืฉืชืžืฉืช ื‘ื“ื’ืœ --bs=2300 (bs ื”ื•ื ื”ื’ื•ื“ืœ ื‘ื‘ื™ื™ื˜ื™ื ืฉืœ ื›ืœ ื‘ืœื•ืง ื›ืชื™ื‘ื” ื‘ fio).

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

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

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

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

ืชืฉื•ืžืช ืœื‘ ืžื™ื•ื—ื“ืช ื ื™ืชื ื” ืœืงื‘ื™ืขืช ืขืจืš ื”ืคืจืžื˜ืจ --size. ื”ื•ื ืžื™ื™ืฆื’ ืืช ืขื•ืžืก ื”-I/O ื”ื›ื•ืœืœ ืฉื ื•ืฆืจ ืขืœ ื™ื“ื™ ื›ืœื™ ื”ืฉื™ืจื•ืช fio. ื‘ืžืงืจื” ืฉืœื ื•, ื–ื”ื• ื”ืžืกืคืจ ื”ื›ื•ืœืœ ืฉืœ ื‘ืชื™ื ืฉื ื›ืชื‘ื• ืœืชืงืฉื•ืจืช. ื–ื” ืขื•ืžื“ ื‘ื™ื—ืก ื™ืฉืจ ืœืžืกืคืจ ื”ืฉื™ื—ื•ืช write (ื• fdatasync). ืขื‘ื•ืจ ืžืกื•ื™ื bs ืžืกืคืจ ืฉื™ื—ื•ืช fdatasync ืฉื•ื•ื” size / bs.

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

ื–ื” ืชืœื•ื™ ื‘ืš

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

ื .ื‘ ืžื”ืžืชืจื’ื

ืขื ืžืงืจื™ ืฉื™ืžื•ืฉ ืžื•ื›ื ื™ื fio ืœืžืฉื™ืžื•ืช ืื—ืจื•ืช, ืจืื” ืชื™ืขื•ื“ ืื• ื™ืฉื™ืจื•ืช ืœ ืžืื’ืจื™ ืคืจื•ื™ืงื˜ื™ื (ื™ืฉ ื”ืจื‘ื” ื™ื•ืชืจ ืžื”ื ืžืžื” ืฉื”ื•ื–ื›ืจ ื‘ืชื™ืขื•ื“).

PPS ืžื”ืžืชืจื’ื

ืงืจื ื’ื ื‘ื‘ืœื•ื’ ืฉืœื ื•:

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

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