etcd เชฎเชพเชŸเซ‡ เชชเซ‚เชฐเชคเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€ เชฎเชพเชŸเซ‡ fio เชธเชพเชฅเซ‡ เชกเชฟเชธเซเช• เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชคเชชเชพเชธเชตเซ€

เชจเซ‰เซ…เชง. เช…เชจเซเชตเชพเชฆ: เช† เชฒเซ‡เช– เช etcd เชกเซ‡เชŸเชพเชฌเซ‡เชเชจเชพ เชธเช‚เชšเชพเชฒเชจเชจเซ‡ เชฒเช—เชคเซ€ เชตเชพเชธเซเชคเชตเชฟเช• เชธเชฎเชธเซเชฏเชพเชจเชพ เช‰เช•เซ‡เชฒเชจเซ€ เชถเซ‹เชงเชฎเชพเช‚ IBM เช•เซเชฒเชพเช‰เชก เชเชจเซเชœเชฟเชจเชฟเชฏเชฐเซ‹ เชฆเซเชตเชพเชฐเชพ เชนเชพเชฅ เชงเชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒเชพ เชจเชพเชจเชพ-เชธเช‚เชถเซ‹เชงเชจเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ‹ เช›เซ‡. เชธเชฎเชพเชจ เช•เชพเชฐเซเชฏ เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชธเซเชธเช‚เช—เชค เชนเชคเซเช‚, เชชเชฐเช‚เชคเซ เชฒเซ‡เช–เช•เซ‹เชจเชพ เชตเชฟเชšเชพเชฐเซ‹ เช…เชจเซ‡ เช•เซเชฐเชฟเชฏเชพเช“เชจเซ‹ เช…เชญเซเชฏเชพเชธเช•เซเชฐเชฎ เชตเซเชฏเชพเชชเช• เชธเช‚เชฆเชฐเซเชญเชฎเชพเช‚ เชฐเชธเชชเซเชฐเชฆ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡.

etcd เชฎเชพเชŸเซ‡ เชชเซ‚เชฐเชคเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€ เชฎเชพเชŸเซ‡ fio เชธเชพเชฅเซ‡ เชกเชฟเชธเซเช• เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชคเชชเชพเชธเชตเซ€

เชธเชฎเช—เซเชฐ เชฒเซ‡เช–เชจเซ‹ เชธเช‚เช•เซเชทเชฟเชชเซเชค เชธเชพเชฐเชพเช‚เชถ: fio เช…เชจเซ‡ etcd

etcd เช•เซเชฒเชธเซเชŸเชฐเชจเซเช‚ เชชเซเชฐเชฆเชฐเซเชถเชจ เช…เชจเซเชกเชฐเชฒเชพเช‡เช‚เช— เชธเซเชŸเซ‹เชฐเซ‡เชœเชจเซ€ เชเชกเชช เชชเชฐ เช–เซ‚เชฌ เช†เชงเชพเชฐ เชฐเชพเช–เซ‡ เช›เซ‡. เช•เชพเชฎเช—เซ€เชฐเซ€เชจเซเช‚ เชจเชฟเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชตเช—เซ‡เชฐเซ‡ เชตเชฟเชตเชฟเชง เชชเซเชฐเซ‹เชฎเชฟเชฅเชฟเชฏเชธ เชฎเซ‡เชŸเซเชฐเชฟเช•เซเชธเชจเซ€ เชจเชฟเช•เชพเชธ เช•เชฐเซ‡ เช›เซ‡. เชคเซ‡เชฎเชพเช‚เชฅเซ€ เชเช• เช›เซ‡ wal_fsync_duration_seconds. เชตเช—เซ‡เชฐเซ‡ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃเชฎเชพเช‚ เชคเซ‡ เช•เชนเซ‡ เช›เซ‡, เชœเซ‹ เช† เชฎเซ‡เชŸเซเชฐเชฟเช•เชจเซ€ 99เชฎเซ€ เชชเชฐเซเชธเซ‡เชจเซเชŸเชพเช‡เชฒ 10 ms เชฅเซ€ เชตเชงเซ เชจ เชนเซ‹เชฏ เชคเซ‹ เชคเซ‡ เชธเซเชŸเซ‹เชฐเซ‡เชœเชจเซ‡ เชชเชฐเซเชฏเชพเชชเซเชค เชเชกเชชเซ€ เช—เชฃเซ€ เชถเช•เชพเชฏ...

เชœเซ‹ เชคเชฎเซ‡ Linux เชฎเชถเซ€เชจเซ‹ เชชเชฐ เชเช• 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 ms เชชเชฐ เชœเซ‹ เชเชฎ เชนเซ‹เชฏ, เชคเซ‹ เชคเชฎเชพเชฐเซ€ เชกเซเชฐเชพเช‡เชต เชชเซ‚เชฐเชคเซ€ เชเชกเชชเซ€ เช›เซ‡. เช…เชนเซ€เช‚ เชเช• เช‰เชฆเชพเชนเชฐเชฃ เช†เช‰เชŸเชชเซเชŸ เช›เซ‡:

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 ms เช•เชฐเชคเชพเช‚ เชธเชนเซ‡เชœ เช“เช›เซเช‚, เชคเซเชฏเชพเช‚ เชเช• เชธเชพเชฐเซ€ เชคเช• เช›เซ‡ เช•เซ‡ เชธเซเชŸเซ‹เชฐเซ‡เชœ เชชเซเชฐเชฆเชฐเซเชถเชจ เช…เชชเซ‚เชฐเชคเซเช‚ เช›เซ‡.
  3. เชชเชฐเซ€เช•เซเชทเชฃ เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเซ‡ เชธเช‚เชธเซเช•เชฐเชฃเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡ fio 3.5 เช•เชฐเชคเชพ เช“เช›เซเช‚ เชจเชฅเซ€, เช•เชพเชฐเชฃ เช•เซ‡ เชœเซ‚เชจเซ€ เช†เชตเซƒเชคเซเชคเชฟเช“ เชเช•เช‚เชฆเชฐ เชชเชฐเชฟเชฃเชพเชฎเซ‹ เช†เชชเชคเซ€ เชจเชฅเซ€ fdatasync เชŸเช•เชพเชตเชพเชฐเซ€เชจเชพ เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚.
  4. เช‰เชชเชฐเซ‹เช•เซเชค เชจเชฟเชทเซเช•เชฐเซเชท เชเช•เช‚เชฆเชฐ เชจเชฟเชทเซเช•เชฐเซเชทเชจเซ‹ เชฎเชพเชคเซเชฐ เชเช• เชจเชพเชจเซ‹ เช…เช‚เชถเซ‹ เช›เซ‡ fio.

fio เช…เชจเซ‡ etcd เชตเชฟเชถเซ‡ เชตเชฟเช—เชคเซ‹

WALs เชตเช—เซ‡เชฐเซ‡ เชตเชฟเชถเซ‡ เชฅเซ‹เชกเชพเช• เชถเชฌเซเชฆเซ‹

เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เชกเซ‡เชŸเชพเชฌเซ‡เช เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡ เชธเช•เซเชฐเชฟเชฏ เชฒเซ‹เช—เซ€เช‚เช— (เชฐเชพเช‡เชŸ-เชนเซ‡เชก เชฒเซ‹เช—เซ€เช‚เช—, WAL). เชตเช—เซ‡เชฐเซ‡ เช† เชชเชฃ เชฒเชพเช—เซ เชชเชกเซ‡ เช›เซ‡. WAL เชจเซ€ เชšเชฐเซเชšเชพ เช† เชฒเซ‡เช–เชจเชพ เช…เชตเช•เชพเชถเชจเซ€ เชฌเชนเชพเชฐ เช›เซ‡, เชชเชฐเช‚เชคเซ เช…เชฎเชพเชฐเชพ เชนเซ‡เชคเซเช“ เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเซ‡ เชœเซ‡ เชœเชพเชฃเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชคเซ‡ เช…เชนเซ€เช‚ เช›เซ‡: เชฆเชฐเซ‡เช• etcd เช•เซเชฒเชธเซเชŸเชฐ เชธเชญเซเชฏ WALเชจเซ‡ เชธเชคเชค เชธเซเชŸเซ‹เชฐเซ‡เชœเชฎเชพเช‚ เชธเซเชŸเซ‹เชฐ เช•เชฐเซ‡ เช›เซ‡. etcd เช•เซ‡เชŸเชฒเชพเช• เช•เซ€-เชตเซ‡เชฒเซเชฏเซ เชธเซเชŸเซ‹เชฐ เช“เชชเชฐเซ‡เชถเชจเซเชธ (เชœเซ‡เชฎ เช•เซ‡ เช…เชชเชกเซ‡เชŸเซเชธ) WAL เชจเซ‡ เชเช•เซเชเซ‡เช•เซเชฏเซเชŸ เช•เชฐเชคเชพ เชชเชนเซ‡เชฒเชพ เชฒเช–เซ‡ เช›เซ‡. เชœเซ‹ เชจเซ‹เชก เช•เซเชฐเซ‡เชถ เชฅเชพเชฏ เช›เซ‡ เช…เชจเซ‡ เชธเซเชจเซ‡เชชเชถเซ‹เชŸ เชตเชšเซเชšเซ‡ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เชฅเชพเชฏ เช›เซ‡, เชคเซ‹ etcd WAL เชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€เชจเชพ เช†เชงเชพเชฐเซ‡ เช…เช—เชพเช‰เชจเชพ เชธเซเชจเซ‡เชชเชถเซ‹เชŸเชฅเซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒ เชตเซเชฏเชตเชนเชพเชฐเซ‹เชจเซ‡ เชชเซเชจเชƒเชธเซเชฅเชพเชชเชฟเชค เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡.

เช†เชฎ, เชฆเชฐ เชตเช–เชคเซ‡ เชœเซเชฏเชพเชฐเซ‡ เช•เซเชฒเชพเชฏเชจเซเชŸ KV เชธเซเชŸเซ‹เชฐเชฎเชพเช‚ เช•เซ€ เช‰เชฎเซ‡เชฐเซ‡ เช›เซ‡ เช…เชฅเชตเชพ เชนเชพเชฒเชจเซ€ เช•เซ€เชจเซ€ เช•เชฟเช‚เชฎเชค เช…เชชเชกเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡, etcd เช WAL เชฎเชพเช‚ เช“เชชเชฐเซ‡เชถเชจเชจเซเช‚ เชตเชฐเซเชฃเชจ เช‰เชฎเซ‡เชฐเซ‡ เช›เซ‡, เชœเซ‡ เชธเชคเชค เชธเซเชŸเซ‹เชฐเซ‡เชœเชฎเชพเช‚ เชจเชฟเชฏเชฎเชฟเชค เชซเชพเช‡เชฒ เช›เซ‡. etcd เช 100% เช–เชพเชคเชฐเซ€ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช เช•เซ‡ เช†เช—เชณ เชตเชงเชคเชพ เชชเชนเซ‡เชฒเชพ WAL เชเชจเซเชŸเซเชฐเซ€ เช–เชฐเซ‡เช–เชฐ เชธเชพเชšเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡. Linux เชชเชฐ เช† เชนเชพเช‚เชธเชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเซ‡ เชธเชฟเชธเซเชŸเชฎ เช•เซ‰เชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเซ‚เชฐเชคเซเช‚ เชจเชฅเซ€ write, เช•เชพเชฐเชฃ เช•เซ‡ เชญเซŒเชคเชฟเช• เชฎเชพเชงเซเชฏเชฎเชฎเชพเช‚ เชฒเช–เชตเชพเชจเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€เชฎเชพเช‚ เชตเชฟเชฒเช‚เชฌ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, Linux เช…เชฎเซเช• เชธเชฎเชฏ เชฎเชพเชŸเซ‡ เช•เชฐเซเชจเชฒ เช•เซ‡เชถ เชฎเซ‡เชฎเชฐเซ€เชฎเชพเช‚ (เชœเซ‡เชฎ เช•เซ‡ เชชเซ‡เชœ เช•เซ‡เชถ) 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 ms เช•เชฐเชคเชพ เช“เช›เซเช‚ เชนเชคเซเช‚. เชธเซเชŸเซ‹เชฐเซ‡เชœ เชธเช‚เชฌเช‚เชงเชฟเชค เช…เชจเซเชฏ เชฎเซ‡เชŸเซเชฐเชฟเช•เซเชธ เช›เซ‡, เชชเชฐเช‚เชคเซ เช† เชฒเซ‡เช– เชคเซ‡เชจเชพ เชชเชฐ เชงเซเชฏเชพเชจ เช•เซ‡เชจเซเชฆเซเชฐเชฟเชค เช•เชฐเชถเซ‡.

fio เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชธเซเชŸเซ‹เชฐเซ‡เชœเชจเซเช‚ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡

เชคเชฎเซ‡ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช•เซ‡ เชถเซเช‚ เชšเซ‹เช•เซเช•เชธ เชธเซเชŸเซ‹เชฐเซ‡เชœ เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ etcd เชธเชพเชฅเซ‡ เช‰เชชเชฏเซ‹เช— เชฎเชพเชŸเซ‡ เชฏเซ‹เช—เซเชฏ เช›เซ‡ เชซเชฟเชฏเซ‹ - เชเช• เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ I/O เชŸเซ‡เชธเซเชŸเชฐ. เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฐเชพเช–เซ‹ เช•เซ‡ เชกเชฟเชธเซเช• I/O เช…เชฒเช— เช…เชฒเช— เชฐเซ€เชคเซ‡ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡: เชธเชฟเช‚เช•/เช…เชธเชฟเช‚เช•, เชธเชฟเชธเซเชŸเชฎ เช•เซ‰เชฒเซเชธเชจเชพ เช˜เชฃเชพ เชตเชฟเชตเชฟเชง เชตเชฐเซเช—เซ‹, เชตเช—เซ‡เชฐเซ‡. เชธเชฟเช•เซเช•เชพเชจเซ€ เชฌเซ€เชœเซ€ เชฌเชพเชœเซ เช เช›เซ‡ fio เชตเชพเชชเชฐเชตเชพ เชฎเชพเชŸเซ‡ เช…เชคเซเชฏเช‚เชค เชฎเซเชถเซเช•เซ‡เชฒ. เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเชฎเชพเช‚ เช˜เชฃเชพ เชชเชฐเชฟเชฎเชพเชฃเซ‹ เช›เซ‡, เช…เชจเซ‡ เชคเซ‡เชฎเชจเชพ เชฎเซ‚เชฒเซเชฏเซ‹เชจเชพ เชตเชฟเชตเชฟเชง เชธเช‚เชฏเซ‹เชœเชจเซ‹ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เช…เชฒเช— เชชเชฐเชฟเชฃเชพเชฎเซ‹ เชคเชฐเชซ เชฆเซ‹เชฐเซ€ เชœเชพเชฏ เช›เซ‡. etcd เชฎเชพเชŸเซ‡ เชตเชพเชœเชฌเซ€ เช…เช‚เชฆเชพเชœ เชฎเซ‡เชณเชตเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ เช เชธเซเชจเชฟเชถเซเชšเชฟเชค เช•เชฐเชตเซเช‚ เชœเซ‹เชˆเช เช•เซ‡ fio เชฆเซเชตเชพเชฐเชพ เชœเชจเชฐเซ‡เชŸ เชฅเชฏเซ‡เชฒ เชฐเชพเชˆเชŸ เชฒเซ‹เชก WAL เชซเชพเชˆเชฒเซ‹ เชชเชฐ etcd เชจเชพ เชฒเช–เชพเชฃ เชฒเซ‹เชก เชœเซ‡เชŸเชฒเซ‹ เชถเช•เซเชฏ เชนเซ‹เชฏ เชคเซ‡เชŸเชฒเซ‹ เชธเชฎเชพเชจ เช›เซ‡:

  • เช†เชจเซ‹ เช…เชฐเซเชฅ เช เชฅเชพเชฏ เช•เซ‡ เชชเซ‡เชฆเชพ เชฅเชพเชฏ เช›เซ‡ fio เชตเชฐเซเช•เชฒเซ‹เชก เช“เช›เชพเชฎเชพเช‚ เช“เช›เซเช‚ เชซเชพเช‡เชฒเชฎเชพเช‚ เช•เซเชฐเชฎเชฟเช• เชฒเช–เชพเชฃเซ‹เชจเซ€ เชถเซเชฐเซ‡เชฃเซ€ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช, เชœเซเชฏเชพเช‚ เชฆเชฐเซ‡เช• เชฒเซ‡เช–เชจ เช•เชพเชฎเช—เซ€เชฐเซ€เชฎเชพเช‚ เชธเชฟเชธเซเชŸเชฎ เช•เซ‰เชฒเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡ writeเชคเซเชฏเชพเชฐเชฌเชพเชฆ fdatasync.
  • เช•เซเชฐเชฎเชฟเช• เชฐเซ‡เช•เซ‹เชฐเซเชกเชฟเช‚เช—เชจเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ เชงเซเชตเชœเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเชตเซ‹ เช†เชตเชถเซเชฏเช• เช›เซ‡ --rw=write.
  • เชชเซเชฐเชคเชฟ fio เช•เซ‰เชฒเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชฒเช–เซเชฏเซเช‚ write (เช…เชจเซ‡ เช…เชจเซเชฏ เชธเชฟเชธเซเชŸเชฎ เช•เซ‰เชฒเซเชธ เชจเชนเซ€เช‚ - เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, pwrite), เชงเซเชตเชœ เชตเชพเชชเชฐเซ‹ --ioengine=sync.
  • เช›เซ‡เชฒเซเชฒเซ‡, เชงเซเชตเชœ --fdatasync=1 เช–เชพเชคเชฐเซ€ เช†เชชเซ‡ เช›เซ‡ เช•เซ‡ เชฆเชฐเซ‡เช• เชชเชพเช›เชณ write เชนเซ‹เชตเซเช‚ เชœ เชœเซ‹เชˆเช fdatasync.
  • เช…เชฎเชพเชฐเชพ เช‰เชฆเชพเชนเชฐเชฃเชฎเชพเช‚ เชฌเซ‡ เช…เชจเซเชฏ เชชเชฐเชฟเชฎเชพเชฃเซ‹: --size ะธ --bs - เชšเซ‹เช•เซเช•เชธ เช‰เชชเชฏเซ‹เช— เช•เซ‡เชธเชจเชพ เช†เชงเชพเชฐเซ‡ เชฌเชฆเชฒเชพเชˆ เชถเช•เซ‡ เช›เซ‡. เช†เช—เชณเชจเซ‹ เชตเชฟเชญเชพเช— เชคเซ‡เชฎเชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช—เซ‹เช เชตเชตเซเช‚ เชคเซ‡เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเชถเซ‡.

เช…เชฎเซ‡ เชถเชพ เชฎเชพเชŸเซ‡ fio เชชเชธเช‚เชฆ เช•เชฐเซเชฏเซเช‚ เช…เชจเซ‡ เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชธเซ‡เชŸ เช•เชฐเชตเซเช‚ เชคเซ‡ เชถเซ€เช–เซเชฏเชพ

เช† เชจเซ‹เช‚เชง เชเช• เชตเชพเชธเซเชคเชตเชฟเช• เช•เซ‡เชธเชฎเชพเช‚เชฅเซ€ เช†เชตเซ‡ เช›เซ‡ เชœเซ‡เชจเซ‹ เช…เชฎเซ‡ เชธเชพเชฎเชจเซ‹ เช•เชฐเซเชฏเซ‹ เชนเชคเซ‹. เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชชเซเชฐเซ‹เชฎเชฟเชฅเชฟเชฏเชธ เชชเชฐ เชฆเซ‡เช–เชฐเซ‡เช– เชธเชพเชฅเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ v1.13 เชชเชฐ เช•เซเชฒเชธเซเชŸเชฐ เชนเชคเซเช‚. เชธเซ‹เชฒเชฟเชก เชธเซเชŸเซ‡เชŸ เชกเซเชฐเชพเช‡เชตเชจเซ‹ เช‰เชชเชฏเซ‹เช— etcd v3.2.24 เชฎเชพเชŸเซ‡ เชธเช‚เช—เซเชฐเชน เชคเชฐเซ€เช•เซ‡ เชฅเชคเซ‹ เชนเชคเซ‹. etcd เชฎเซ‡เชŸเซเชฐเชฟเช•เซเชธ เช–เซ‚เชฌ เชŠเช‚เชšเซ€ เชตเชฟเชฒเช‚เชฌ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡ fdatasyncเชœเซเชฏเชพเชฐเซ‡ เช•เซเชฒเชธเซเชŸเชฐ เชจเชฟเชทเซเช•เซเชฐเชฟเชฏ เชนเชคเซเช‚ เชคเซเชฏเชพเชฐเซ‡ เชชเชฃ. เช…เชฎเชจเซ‡ เช† เชฎเซ‡เชŸเซเชฐเชฟเช•เซเชธ เช–เซ‚เชฌ เชœ เชถเช‚เช•เชพเชธเซเชชเชฆ เชœเชฃเชพเชฏเชพ เช…เชจเซ‡ เช…เชฎเชจเซ‡ เช–เชพเชคเชฐเซ€ เชจ เชนเชคเซ€ เช•เซ‡ เชคเซ‡เช“ เชฌเชฐเชพเชฌเชฐ เชถเซเช‚ เชฐเชœเซ‚ เช•เชฐเซ‡ เช›เซ‡. เชตเชงเซเชฎเชพเช‚, เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเซ‹เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชคเซ‹ เชนเชคเซ‹, เชคเซ‡เชฅเซ€ เชคเซ‡ เช•เชนเซ‡เชตเซเช‚ เช…เชถเช•เซเชฏ เชนเชคเซเช‚ เช•เซ‡ เชตเชฟเชฒเช‚เชฌ เชตเชฐเซเชšเซเชฏเซเช…เชฒเชพเชˆเชเซ‡เชถเชจเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชนเชคเซ‹ เช•เซ‡ SSDs เชฆเซ‹เชทเชฟเชค เชนเชคเชพ.

เชตเชงเซเชฎเชพเช‚, เช…เชฎเซ‡ เชนเชพเชฐเซเชกเชตเซ‡เชฐ เช…เชจเซ‡ เชธเซ‰เชซเซเชŸเชตเซ‡เชฐ เช—เซ‹เช เชตเชฃเซ€เชฎเชพเช‚ เชตเชฟเชตเชฟเชง เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชœเซ‹เชˆ เชฐเชนเซเชฏเชพ เชนเชคเชพ, เชคเซ‡เชฅเซ€ เช…เชฎเชจเซ‡ เชคเซ‡เชจเซเช‚ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เช•เชฐเชตเชพเชจเซ€ เชฐเซ€เชคเชจเซ€ เชœเชฐเซ‚เชฐ เชนเชคเซ€. เช…เชฒเชฌเชคเซเชค, เชฆเชฐเซ‡เช• เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชฎเชพเช‚ etcd เชšเชฒเชพเชตเชตเซเช‚ เช…เชจเซ‡ เช…เชจเซเชฐเซ‚เชช เชชเซเชฐเซ‹เชฎเชฟเชฅเชฟเชฏเชธ เชฎเซ‡เชŸเซเชฐเชฟเช•เซเชธเชจเซ‡ เชœเซ‹เชตเซเช‚ เชถเช•เซเชฏ เชฌเชจเชถเซ‡, เชชเชฐเช‚เชคเซ เช† เชฎเชพเชŸเซ‡ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชชเซเชฐเชฏเชคเซเชจเซ‹เชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡. เชšเซ‹เช•เซเช•เชธ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชจเซเช‚ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช…เชฎเชจเซ‡ เชเช• เชธเชฐเชณ เชฐเซ€เชคเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช…เชฎเซ‡ etcd เชฎเชพเช‚เชฅเซ€ เช†เชตเชคเชพ เชชเซเชฐเซ‹เชฎเชฟเชฅเชฟเชฏเชธ เชฎเซ‡เชŸเซเชฐเชฟเช•เซเชธเชจเซ€ เช…เชฎเชพเชฐเซ€ เชธเชฎเชœเชจเซ‡ เชšเช•เชพเชธเชตเชพ เชฎเชพเช—เซ€เช เช›เซ€เช.

เช† เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชฌเซ‡ เชธเชฎเชธเซเชฏเชพเช“ เชนเชฒ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชนเชคเซ€:

  • เชชเซเชฐเชฅเชฎ, WAL เชซเชพเช‡เชฒเซ‹ เชชเชฐ เชฒเช–เชคเซ€ เชตเช–เชคเซ‡ etcd เชœเซ‡ I/O เชฒเซ‹เชก เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡ เช•เซ‡เชตเซ‹ เชฆเซ‡เช–เชพเชฏ เช›เซ‡? เช•เชฏเชพ เชธเชฟเชธเซเชŸเชฎ เช•เซ‰เชฒเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฅเชพเชฏ เช›เซ‡? เชฒเช–เชตเชพเชจเชพ เชฌเซเชฒเซ‹เช•เชจเซเช‚ เช•เชฆ เชถเซเช‚ เช›เซ‡?
  • เชฌเซ€เชœเซเช‚, เชšเชพเชฒเซ‹ เช•เชนเซ€เช เช•เซ‡ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช‰เชชเชฐเซ‹เช•เซเชค เชชเซเชฐเชถเซเชจเซ‹เชจเชพ เชœเชตเชพเชฌเซ‹ เช›เซ‡. เชธเชพเชฅเซ‡ เช…เชจเซเชฐเซ‚เชช เชฒเซ‹เชกเชจเซเช‚ เชชเซเชจเชƒเช‰เชคเซเชชเชพเชฆเชจ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซเช‚ fio? เช…เช‚เชคเชฎเชพเช‚ fio - เชชเซเชทเซเช•เชณ เชชเชฐเชฟเชฎเชพเชฃเซ‹ เชธเชพเชฅเซ‡ เช…เชคเซเชฏเช‚เชค เชฒเชตเชšเซ€เช• เช‰เชชเชฏเซ‹เช—เชฟเชคเชพ (เช† เชšเช•เชพเชธเชตเซเช‚ เชธเชฐเชณ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช…เชนเซ€เช‚ - เช†เชถเชฐเซ‡ เช…เชจเซเชตเชพเชฆ.).

เช…เชฎเซ‡ เชธเชฎเชพเชจ เช†เชฆเซ‡เชถ-เช†เชงเชพเชฐเชฟเชค เช…เชญเชฟเช—เชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชฌเช‚เชจเซ‡ เชธเชฎเชธเซเชฏเชพเช“ เชนเชฒ เช•เชฐเซ€ lsof ะธ strace:

  • เชจเซ€ เชฎเชฆเชฆ เชธเชพเชฅเซ‡ lsof เชคเชฎเซ‡ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชฆเซเชตเชพเชฐเชพ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชคเชพ เชคเชฎเชพเชฎ เชซเชพเช‡เชฒ เชตเชฐเซเชฃเชจเช•เชฐเซเชคเชพเช“ เชคเซ‡เชฎเชœ เชคเซ‡เช“ เชœเซ‡ เชซเชพเช‡เชฒเซ‹เชจเซ‹ เชธเช‚เชฆเชฐเซเชญ เช†เชชเซ‡ เช›เซ‡ เชคเซ‡ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹.
  • เชจเซ€ เชฎเชฆเชฆ เชธเชพเชฅเซ‡ strace เชคเชฎเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชšเชพเชฒเซ€ เชฐเชนเซ‡เชฒเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชฅเชตเชพ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชšเชฒเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชคเซ‡เชจเซเช‚ เช…เชตเชฒเซ‹เช•เชจ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เช†เชฆเซ‡เชถ เช† เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชฆเซเชตเชพเชฐเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒ เชคเชฎเชพเชฎ เชธเชฟเชธเซเชŸเชฎ เช•เซ‹เชฒเซเชธ เช…เชจเซ‡ เชตเซˆเช•เชฒเซเชชเชฟเช• เชฐเซ€เชคเซ‡, เชคเซ‡เชจเชพ เชตเช‚เชถเชœเซ‹ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡. เชฌเชพเชฆเชฎเชพเช‚ เชซเซ‹เชฐเซเช•เชฟเช‚เช— เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“ เชฎเชพเชŸเซ‡ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เช›เซ‡, เช…เชจเซ‡ etcd เช†เชตเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“เชฎเชพเช‚เชจเซ€ เชเช• เช›เซ‡.

เช…เชฎเซ‡ เชœเซ‡ เชชเซเชฐเชฅเชฎ เชตเชธเซเชคเซเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเชฏเซ‹ เชคเซ‡ เชนเชคเซ‹ strace เชœเซเชฏเชพเชฐเซ‡ เชคเซ‡ เชจเชฟเชทเซเช•เซเชฐเชฟเชฏ เชนเซ‹เชฏ เชคเซเชฏเชพเชฐเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚ etcd เชธเชฐเซเชตเชฐเชจเซ‹ เช…เชญเซเชฏเชพเชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡.

เช†เชฎ, เชเชตเซเช‚ เชœเชพเชฃเชตเชพ เชฎเชณเซเชฏเซเช‚ เช•เซ‡ WAL เชฎเชพเช‚ เชฐเชพเช‡เชŸ เชฌเซเชฒเซ‹เช•เซเชธ เช–เซ‚เชฌ เชœ เช—เซ€เชš เชœเซ‚เชฅเชฎเชพเช‚ เช›เซ‡, เชคเซ‡เชฎเชพเช‚เชจเชพ เชฎเซ‹เชŸเชพ เชญเชพเช—เชจเชพ 2200-2400 เชฌเชพเช‡เชŸเซเชธเชจเซ€ เชฐเซ‡เชจเซเชœเชฎเชพเช‚ เช›เซ‡. เชคเซ‡เชฅเซ€ เชœ เช† เชฒเซ‡เช–เชจเซ€ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เช†เชฆเซ‡เชถ เชงเซเชตเชœเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡ --bs=2300 (bs โ€” เชฆเชฐเซ‡เช• เชฐเซ‡เช•เซ‹เชฐเซเชกเชฟเช‚เช— เชฌเซเชฒเซ‹เช•เชจเชพ เชฌเชพเชˆเชŸเชฎเชพเช‚ เช•เชฆ fio).

เชฎเชนเซ‡เชฐเชฌเชพเชจเซ€ เช•เชฐเซ€เชจเซ‡ เชจเซ‹เช‚เชง เช•เชฐเซ‹ เช•เซ‡ เช†เชตเซƒเชคเซเชคเชฟ, เชœเชฎเชพเชตเชŸ, เชชเชฐเชฟเชฎเชพเชฃ เชฎเซ‚เชฒเซเชฏเซ‹ เชตเช—เซ‡เชฐเซ‡เชจเชพ เช†เชงเชพเชฐเซ‡ etcd เชฐเชพเชˆเชŸ เชฌเซเชฒเซ‹เช• เชฎเชพเชชเซ‹ เชฌเชฆเชฒเชพเชˆ เชถเช•เซ‡ เช›เซ‡. - เช† เชธเชฎเชฏเช—เชพเชณเชพเชจเซ‡ เช…เชธเชฐ เช•เชฐเซ‡ เช›เซ‡ fdatasync. เชœเซ‹ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชธเชฎเชพเชจ เช‰เชชเชฏเซ‹เช—เชจเซ‹ เช•เซ‡เชธ เช›เซ‡, เชคเซ‹ เชคเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเซ‹ strace เชจเชตเซ€เชจเชคเชฎ เชฎเซ‚เชฒเซเชฏเซ‹ เชฎเซ‡เชณเชตเชตเชพ เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเซ€ etcd เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“.

เชชเช›เซ€, เชซเชพเช‡เชฒ เชธเชฟเชธเซเชŸเชฎ เชธเชพเชฅเซ‡ etcd เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡เชจเซ€ เชธเซเชชเชทเซเชŸ เช…เชจเซ‡ เชตเซเชฏเชพเชชเช• เชธเชฎเชœ เชฎเซ‡เชณเชตเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เชจเซ€เชšเซ‡เชฅเซ€ เชšเชฒเชพเชตเซเชฏเซเช‚. strace เชงเซเชตเชœ เชธเชพเชฅเซ‡ -ffttT. เช†เชจเชพเชฅเซ€ เชฌเชพเชณ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“ เช•เซ‡เชชเซเชšเชฐ เช•เชฐเชตเชพเชจเซเช‚ เช…เชจเซ‡ เชฆเชฐเซ‡เช•เชจเซเช‚ เช†เช‰เชŸเชชเซเชŸ เช…เชฒเช— เชซเชพเช‡เชฒเชฎเชพเช‚ เชฒเช–เชตเชพเชจเซเช‚ เชถเช•เซเชฏ เชฌเชจเซเชฏเซเช‚. เชตเชงเซเชฎเชพเช‚, เชฆเชฐเซ‡เช• เชธเชฟเชธเซเชŸเชฎ เช•เซ‰เชฒเชจเซ€ เชถเชฐเซ‚เช†เชคเชจเซ€ เช•เซเชทเชฃ เช…เชจเซ‡ เช…เชตเชงเชฟ เชตเชฟเชถเซ‡ เชตเชฟเช—เชคเชตเชพเชฐ เชฎเชพเชนเชฟเชคเซ€ เชฎเซ‡เชณเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€.

เช…เชฎเซ‡ เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เชชเชฃ เช•เชฐเซเชฏเซ‹ lsofเช†เช‰เชŸเชชเซเชŸ เชตเชฟเชถเซ‡ เชคเชฎเชพเชฐเซ€ เชธเชฎเชœเชจเซ€ เชชเซเชทเซเชŸเชฟ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ strace เช•เชฏเชพ เชนเซ‡เชคเซ เชฎเชพเชŸเซ‡ เชซเชพเช‡เชฒ เชตเชฐเซเชฃเชจเช•เชฐเซเชคเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹ เชคเซ‡ เชธเช‚เชฆเชฐเซเชญเชฎเชพเช‚. เชชเชฐเชฟเชฃเชพเชฎ เช†เชตเซเชฏเซเช‚ strace, เช‰เชชเชฐเชจเชพ เชœเซ‡เชตเซเช‚ เชœ. เชธเชฟเช‚เช•เซเชฐเชจเชพเช‡เชเซ‡เชถเชจ เชธเชฎเชฏ เชธเชพเชฅเซ‡ เช†เช‚เช•เชกเชพเช•เซ€เชฏ เชฎเซ‡เชจเซ€เชชเซเชฏเซเชฒเซ‡เชถเชจเซเชธ เชชเซเชทเซเชŸเชฟ เช•เชฐเซ‡ เช›เซ‡ เช•เซ‡ เชฎเซ‡เชŸเซเชฐเชฟเช• wal_fsync_duration_seconds เชตเช—เซ‡เชฐเซ‡เชฅเซ€ เชฎเซ‡เชณ เช–เชพเชคเชพ เช•เซ‰เชฒเซเชธ fdatasync WAL เชซเชพเช‡เชฒ เชตเชฐเซเชฃเชจเช•เชฐเซเชคเชพเช“ เชธเชพเชฅเซ‡.

เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชœเชจเชฐเซ‡เชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ fio เชตเช—เซ‡เชฐเซ‡เชจเชพ เชฒเซ‹เชกเชจเซ€ เชœเซ‡เชฎ เชตเชฐเซเช•เชฒเซ‹เชก, เช‰เชชเชฏเซ‹เช—เชฟเชคเชพ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹เชจเซ‹ เช…เชญเซเชฏเชพเชธ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹ เช…เชจเซ‡ เช…เชฎเชพเชฐเชพ เช•เชพเชฐเซเชฏ เชฎเชพเชŸเซ‡ เชฏเซ‹เช—เซเชฏ เชชเชฐเชฟเชฎเชพเชฃเซ‹ เชชเชธเช‚เชฆ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เชนเชคเชพ. เช…เชฎเซ‡ เชธเซเชจเชฟเชถเซเชšเชฟเชค เช•เชฐเซเชฏเซเช‚ เช•เซ‡ เชฏเซ‹เช—เซเชฏ เชธเชฟเชธเซเชŸเชฎ เช•เซ‰เชฒเซเชธ เชธเชพเชฎเซ‡เชฒ เชนเชคเชพ เช…เชจเซ‡ เชšเชพเชฒเซ€เชจเซ‡ เชคเซ‡เชฎเชจเซ€ เช…เชตเชงเชฟเชจเซ€ เชชเซเชทเซเชŸเชฟ เช•เชฐเซ€ fio เชฅเซ€ strace (เชœเซ‡เชฎ เช•เซ‡ เชตเช—เซ‡เชฐเซ‡เชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚).

เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐเชจเซเช‚ เชฎเซ‚เชฒเซเชฏ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช–เชพเชธ เชงเซเชฏเชพเชจ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ --size. เชคเซ‡ fio เช‰เชชเชฏเซ‹เช—เชฟเชคเชพ เชฆเซเชตเชพเชฐเชพ เชœเชจเชฐเซ‡เชŸ เชฅเชฏเซ‡เชฒ เช•เซเชฒ I/O เชฒเซ‹เชกเชจเซเช‚ เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟเชคเซเชต เช•เชฐเซ‡ เช›เซ‡. เช…เชฎเชพเชฐเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เช† เชฎเซ€เชกเชฟเชฏเชพเชจเซ‡ เชฒเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒเซ€ เชฌเชพเช‡เชŸเซเชธเชจเซ€ เช•เซเชฒ เชธเช‚เช–เซเชฏเชพ เช›เซ‡. เชคเซ‡ เช•เซ‰เชฒเซเชธเชจเซ€ เชธเช‚เช–เซเชฏเชพเชจเชพ เชธเซ€เชงเชพ เชชเซเชฐเชฎเชพเชฃเชธเชฐ เช›เซ‡ write (เช…เชจเซ‡ fdatasync). เชšเซ‹เช•เซเช•เชธ เชฎเชพเชŸเซ‡ bs เช•เซ‰เชฒเซเชธเชจเซ€ เชธเช‚เช–เซเชฏเชพ fdatasync เชฌเชฐเชพเชฌเชฐ size / bs.

เช•เชพเชฐเชฃ เช•เซ‡ เช…เชฎเชจเซ‡ เชชเชฐเซเชธเซ‡เชจเซเชŸเชพเชˆเชฒเชฎเชพเช‚ เชฐเชธ เชนเชคเซ‹, เช…เชฎเซ‡ เช เชธเซเชจเชฟเชถเซเชšเชฟเชค เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซเชฏเซ‹ เช•เซ‡ เชจเชฎเซ‚เชจเชพเช“เชจเซ€ เชธเช‚เช–เซเชฏเชพ เช†เช‚เช•เชกเชพเช•เซ€เชฏ เชฎเชนเชคเซเชต เชฎเชพเชŸเซ‡ เชชเซ‚เชฐเชคเซ€ เชฎเซ‹เชŸเซ€ เช›เซ‡. เช…เชจเซ‡ เชคเซ‡เช“เช เชคเซ‡ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚ 10^4 (เชœเซ‡ 22 MB เชจเชพ เช•เชฆเชจเซ‡ เช…เชจเซเชฐเซ‚เชช เช›เซ‡) เชชเชฐเซเชฏเชพเชชเซเชค เชนเชถเซ‡. เชจเชพเชจเชพ เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ เชฎเซ‚เชฒเซเชฏเซ‹ --size เชตเชงเซ เชธเซเชชเชทเซเชŸ เช…เชตเชพเชœ เช‰เชคเซเชชเชจเซเชจ เช•เชฐเซ‡ เช›เซ‡ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช•เซ‰เชฒเซเชธ fdatasync, เชœเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เช•เชฐเชคเชพเช‚ เช˜เชฃเซ‹ เชธเชฎเชฏ เชฒเซ‡ เช›เซ‡ เช…เชจเซ‡ 99เชฎเซ€ เชชเชฐเซเชธเซ‡เชจเซเชŸเชพเช‡เชฒเชจเซ‡ เช…เชธเชฐ เช•เชฐเซ‡ เช›เซ‡).

เชคเซ‡ เชคเชฎเชพเชฐเชพ เช‰เชชเชฐ เช›เซ‡

เชฒเซ‡เช– เชฌเชคเชพเชตเซ‡ เช›เซ‡ เช•เซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ fio เชคเชฎเซ‡ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช•เซ‡ เชถเซเช‚ etcd เชธเชพเชฅเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฌเชจเชพเชตเชพเชฏเซ‡เชฒ เชฎเซ€เชกเชฟเชฏเชพ เชชเชฐเซเชฏเชพเชชเซเชค เชเชกเชชเซ€ เช›เซ‡. เชนเชตเซ‡ เชคเซ‡ เชคเชฎเชพเชฐเชพ เชชเชฐ เช›เซ‡! เชคเชฎเซ‡ เชธเซ‡เชตเชพเชฎเชพเช‚ SSD-เช†เชงเชพเชฐเชฟเชค เชธเซเชŸเซ‹เชฐเซ‡เชœ เชธเชพเชฅเซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเซ‹เชจเซเช‚ เช…เชจเซเชตเซ‡เชทเชฃ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช†เช‡เชฌเซ€เชเชฎ เช•เซเชฒเชพเช‰เชก.

เช…เชจเซเชตเชพเชฆเช• เชคเชฐเชซเชฅเซ€ เชชเซ€เชเชธ

เช‰เชชเชฏเซ‹เช—เชจเชพ เชคเซˆเชฏเชพเชฐ เช‰เชฆเชพเชนเชฐเชฃเซ‹ เชธเชพเชฅเซ‡ fio เช…เชจเซเชฏ เชธเชฎเชธเซเชฏเชพเช“ เช‰เช•เซ‡เชฒเชตเชพ เชฎเชพเชŸเซ‡ เชฎเชพเช‚ เชถเซ‹เชงเซ€ เชถเช•เชพเชฏ เช›เซ‡ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เช…เชฅเชตเชพ เชธเซ€เชงเชพ เชœ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€เช (เชฆเชธเซเชคเชพเชตเซ‡เชœเชฎเชพเช‚ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เช•เชฐเชคเชพเช‚ เชคเซ‡เชฎเชพเช‚เชจเชพ เช˜เชฃเชพ เชตเชงเซ เช›เซ‡).

เช…เชจเซเชตเชพเชฆเช• เชคเชฐเชซเชฅเซ€ PPS

เช…เชฎเชพเชฐเชพ เชฌเซเชฒเซ‹เช— เชชเชฐ เชชเชฃ เชตเชพเช‚เชšเซ‹:

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹