etcd เจฒเจˆ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจฒเจˆ fio เจจเจพเจฒ เจกเจฟเจธเจ•เจพเจ‚ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเฉ€เจ

เจจเฉ‹เจŸ เจ•เจฐเฉ‹เฅค เจ…เจจเฉเจตเจพเจฆ: เจ‡เจน เจฒเฉ‡เจ– etcd เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฆเฉ‡ เจธเฉฐเจšเจพเจฒเจจ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจ‡เฉฑเจ• เจ…เจธเจฒ เจธเจฎเฉฑเจธเจฟเจ† เจฆเฉ‡ เจนเฉฑเจฒ เจฆเฉ€ เจญเจพเจฒ เจตเจฟเฉฑเจš IBM เจ•เจฒเจพเจ‰เจก เจ‡เฉฐเจœเฉ€เจจเฉ€เจ…เจฐเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจ‡เฉฑเจ• เจฎเจฟเฉฐเจจเฉ€-เจ–เฉ‹เจœ เจฆเจพ เจจเจคเฉ€เจœเจพ เจนเฉˆเฅค เจ‡เฉฑเจ• เจธเจฎเจพเจจ เจ•เฉฐเจฎ เจธเจพเจกเฉ‡ เจฒเจˆ เจขเฉเจ•เจตเจพเจ‚ เจธเฉ€, เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจฒเฉ‡เจ–เจ•เจพเจ‚ เจฆเฉ‡ เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌ เจ…เจคเฉ‡ เจ•เจพเจฐเจตเจพเจˆเจ†เจ‚ เจฆเจพ เจ•เฉ‹เจฐเจธ เจ‡เฉฑเจ• เจตเจฟเจ†เจชเจ• เจธเฉฐเจฆเจฐเจญ เจตเจฟเฉฑเจš เจฆเจฟเจฒเจšเจธเจช เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ.

etcd เจฒเจˆ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจฒเจˆ fio เจจเจพเจฒ เจกเจฟเจธเจ•เจพเจ‚ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเฉ€เจ

เจชเฉ‚เจฐเฉ‡ เจฒเฉ‡เจ– เจฆเจพ เจธเฉฐเจ–เฉ‡เจช เจธเจพเจฐ: fio เจ…เจคเฉ‡ etcd

เจ‡เฉฑเจ• etcd เจ•เจฒเฉฑเจธเจŸเจฐ เจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจ…เฉฐเจกเจฐเจฒเจพเจˆเฉฐเจ— เจธเจŸเฉ‹เจฐเฉ‡เจœ เจฆเฉ€ เจ—เจคเฉ€ 'เจคเฉ‡ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค etcd เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐเจจ เจฒเจˆ เจตเฉฑเจ–-เจตเฉฑเจ– เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจจเจฟเจฐเจฏเจพเจค เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‰เจจเฉเจนเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจนเฉˆ wal_fsync_duration_seconds. เจ†เจฆเจฟ เจฒเจˆ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจตเจฟเฉฑเจš เจ‡เจน เจ•เจนเจฟเฉฐเจฆเจพ เจนเฉˆเจ‰เจธ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจจเฉ‚เฉฐ เจ•เจพเจซเจผเฉ€ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจฎเฉฐเจจเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจœเฉ‡เจ•เจฐ เจ‡เจธ เจฎเฉˆเจŸเฉเจฐเจฟเจ• เจฆเจพ 99เจตเจพเจ‚ เจชเฉเจฐเจคเฉ€เจธเจผเจค 10 ms เจคเฉ‹เจ‚ เจตเฉฑเจง เจจเจนเฉ€เจ‚ เจนเฉˆ...

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจฒเฉ€เจจเจ•เจธ เจฎเจธเจผเฉ€เจจเจพเจ‚ 'เจคเฉ‡ เจ‡เฉฑเจ• etcd เจ•เจฒเฉฑเจธเจŸเจฐ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฌเจพเจฐเฉ‡ เจตเจฟเจšเจพเจฐ เจ•เจฐ เจฐเจนเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจœเจพเจ‚เจš เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจ•เฉ€ เจกเจฐเจพเจˆเจตเจพเจ‚ (เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ SSDs) เจ•เจพเจซเจผเฉ€ เจคเฉ‡เจœเจผ เจนเจจ, เจคเจพเจ‚ เจ…เจธเฉ€เจ‚ เจชเฉเจฐเจธเจฟเฉฑเจง 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)เฅค etcd เจตเฉ€ เจชเฉเจฐเจญเจพเจตเจฟเจค เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค WAL เจฆเฉ€ เจšเจฐเจšเจพ เจ‡เจธ เจฒเฉ‡เจ– เจฆเฉ‡ เจฆเจพเจ‡เจฐเฉ‡ เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจนเฉˆ, เจชเจฐ เจธเจพเจกเฉ‡ เจ‰เจฆเฉ‡เจธเจผเจพเจ‚ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจœเจพเจฃเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉˆ เจ•เจฟ เจนเจฐเฉ‡เจ• etcd เจ•เจฒเฉฑเจธเจŸเจฐ เจฎเฉˆเจ‚เจฌเจฐ WAL เจจเฉ‚เฉฐ เจจเจฟเจฐเฉฐเจคเจฐ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เจฐเจฆเจพ เจนเฉˆเฅค etcd เจ•เฉเจ เจ•เฉเฉฐเจœเฉ€-เจฎเฉเฉฑเจฒ เจธเจŸเฉ‹เจฐเฉ‡เจœเจผ เจ“เจชเจฐเฉ‡เจธเจผเจจ (เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ…เฉฑเจชเจกเฉ‡เจŸ) เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ WAL เจจเฉ‚เฉฐ เจฒเจฟเจ–เจฆเจพ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจ‡เฉฑเจ• เจจเฉ‹เจก เจ•เฉเจฐเฉˆเจธเจผ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจฆเฉ‡ เจตเจฟเจšเจ•เจพเจฐ เจฎเฉเฉœ เจšเจพเจฒเฉ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, etcd WAL เจฆเฉ€ เจธเจฎเฉฑเจ—เจฐเฉ€ เจฆเฉ‡ เจ†เจงเจพเจฐ 'เจคเฉ‡ เจชเจฟเจ›เจฒเฉ‡ เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจคเฉ‹เจ‚ เจฒเฉˆเจฃ-เจฆเฉ‡เจฃ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚, เจนเจฐ เจตเจพเจฐ เจœเจฆเฉ‹เจ‚ เจ‡เฉฑเจ• เจ•เจฒเจพเจ‡เฉฐเจŸ KV เจธเจŸเฉ‹เจฐ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ•เฉเฉฐเจœเฉ€ เจœเฉ‹เฉœเจฆเจพ เจนเฉˆ เจœเจพเจ‚ เจฎเฉŒเจœเฉ‚เจฆเจพ เจ•เฉเฉฐเจœเฉ€ เจฆเฉ‡ เจฎเฉเฉฑเจฒ เจจเฉ‚เฉฐ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เจฐเจฆเจพ เจนเฉˆ, etcd เจ“เจชเจฐเฉ‡เจธเจผเจจ เจตเจฐเจฃเจจ เจจเฉ‚เฉฐ WAL เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจฆเจพ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจจเจฟเจฐเฉฐเจคเจฐ เจธเจŸเฉ‹เจฐ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจจเจฟเจฏเจฎเจค เจซเจพเจˆเจฒ เจนเฉˆเฅค 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 ms เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ เจธเฉ€เฅค เจนเฉ‹เจฐ เจธเจŸเฉ‹เจฐเฉ‡เจœ-เจธเจฌเฉฐเจงเจค เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจนเจจ, เจชเจฐ เจ‡เจน เจฒเฉ‡เจ– เจ‰เจธ 'เจคเฉ‡ เจงเจฟเจ†เจจ เจ•เฉ‡เจ‚เจฆเจฐเจฟเจค เจ•เจฐเฉ‡เจ—เจพเฅค

fio เจจเจพเจฒ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจฆเฉ€ เจ•เจฆเจฐ เจ•เจฐเฉ‹

เจคเฉเจธเฉ€เจ‚ เจ‡เจน เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจ•เฉ€ เจ•เฉ‹เจˆ เจ–เจพเจธ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจธเจนเฉ‚เจฒเจค เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ etcd เจจเจพเจฒ เจตเจฐเจคเจฃ เจฒเจˆ เจขเฉเจ•เจตเฉ€เจ‚ เจนเฉˆ เจซเจฟเจ“ โ€” เจ‡เฉฑเจ• เจชเฉเจฐเจธเจฟเฉฑเจง I/O เจŸเฉˆเจธเจŸเจฐเฅค เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เฉ‹ เจ•เจฟ เจกเจฟเจธเจ• I/O เจ•เจˆ เจตเฉฑเจ–-เจตเฉฑเจ– เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจจเจพเจฒ เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆ: เจธเจฟเฉฐเจ•/เจ…เจธเจฟเฉฐเจ•, เจ•เจˆ เจตเฉฑเจ–-เจตเฉฑเจ– เจธเจฟเจธเจ•เฉˆเจฒ เจ•เจฒเจพเจธเจพเจ‚, เจ…เจคเฉ‡ เจนเฉ‹เจฐเฅค เจธเจฟเฉฑเจ•เฉ‡ เจฆเจพ เจฆเฉ‚เจœเจพ เจชเจพเจธเจพ เจ‡เจน เจนเฉˆ fio เจตเจฐเจคเจฃ เจฒเจˆ เจฌเจนเฉเจค เจฎเฉเจธเจผเจ•เจฒ. เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจฆเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจฎเจพเจชเจฆเฉฐเจก เจนเจจ, เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจฎเฉเฉฑเจฒเจพเจ‚ เจฆเฉ‡ เจตเฉฑเจ–เฉ‹-เจตเฉฑเจ–เจฐเฉ‡ เจธเฉฐเจœเฉ‹เจ— เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจตเฉฑเจ–เจฐเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจตเฉฑเจฒ เจฒเฉˆ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค etcd เจฒเจˆ เจ‡เฉฑเจ• เจตเจพเจœเจฌ เจ…เจจเฉเจฎเจพเจจ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจ•เจฟ fio เจฆเฉเจ†เจฐเจพ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจฒเจฟเจ–เจฃ เจฆเจพ เจฒเฉ‹เจก etcd เจฆเฉ€ WAL เจซเจพเจˆเจฒ เจฐเจพเจˆเจŸ เจฒเฉ‹เจก เจฆเฉ‡ เจœเจฟเฉฐเจจเจพ เจธเฉฐเจญเจต เจนเฉ‹ เจธเจ•เฉ‡ เจจเฉ‡เฉœเฉ‡ เจนเฉˆ:

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

เจ…เจธเฉ€เจ‚ fio เจจเฉ‚เฉฐ เจ•เจฟเจ‰เจ‚ เจšเฉเจฃเจฟเจ† เจ…เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจธเฉˆเฉฑเจŸ เจ•เจฐเจจเจพ เจธเจฟเฉฑเจ–เจฟเจ†

เจ‡เจน เจจเฉ‹เจŸ เจ‡เฉฑเจ• เจ…เจธเจฒ เจ•เฉ‡เจธ เจคเฉ‹เจ‚ เจ†เจ‡เจ† เจนเฉˆ เจœเจฟเจธเจฆเจพ เจ…เจธเฉ€เจ‚ เจธเจพเจนเจฎเจฃเจพ เจ•เฉ€เจคเจพ เจนเฉˆเฅค เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ 'เจคเฉ‡ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ v1.13 'เจคเฉ‡ เจ‡เฉฑเจ• เจ•เจฒเฉฑเจธเจŸเจฐ เจธเฉ€เฅค SSDs เจจเฉ‚เฉฐ etcd v3.2.24 เจฒเจˆ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจตเจœเฉ‹เจ‚ เจตเจฐเจคเจฟเจ† เจ—เจฟเจ† เจธเฉ€เฅค Etcd เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจจเฉ‡ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจฒเฉ‡เจŸเฉˆเจ‚เจธเฉ€เจ†เจ‚ เจฆเจฟเจ–เจพเจˆเจ†เจ‚ fdatasync, เจ‰เจฆเฉ‹เจ‚ เจตเฉ€ เจœเจฆเฉ‹เจ‚ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเจนเจฒเจพ เจธเฉ€เฅค เจธเจพเจกเฉ‡ เจฒเจˆ, เจ‡เจน เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจฌเจนเฉเจค เจธเจผเฉฑเจ•เฉ€ เจฒเฉฑเจ—เจฆเฉ‡ เจธเจจ, เจ…เจคเฉ‡ เจธเจพเจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจ เจจเจนเฉ€เจ‚ เจธเฉ€ เจ•เจฟ เจ‰เจน เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ•เฉ€ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ‡ เจนเจจเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจธเจผเจพเจฎเจฒ เจธเจจ, เจ‡เจธ เจฒเจˆ เจ‡เจน เจ•เจนเจฟเจฃเจพ เจธเฉฐเจญเจต เจจเจนเฉ€เจ‚ เจธเฉ€ เจ•เจฟ เจ•เฉ€ เจฆเฉ‡เจฐเฉ€ เจตเจฐเจšเฉเจ…เจฒเจพเจˆเจœเฉ‡เจธเจผเจจ เจฆเฉ‡ เจ•เจพเจฐเจจ เจธเฉ€ เจœเจพเจ‚ SSD เจœเจผเจฟเฉฐเจฎเฉ‡เจตเจพเจฐ เจธเฉ€เฅค

เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ…เจธเฉ€เจ‚ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจ…เจคเฉ‡ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐเฉ‡เจธเจผเจจ เจตเจฟเฉฑเจš เจ•เจˆ เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ 'เจคเฉ‡ เจตเจฟเจšเจพเจฐ เจ•เฉ€เจคเจพ, เจ‡เจธเจฒเจˆ เจธเจพเจจเฉ‚เฉฐ เจ‰เจนเจจเจพเจ‚ เจฆเจพ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจคเจฐเฉ€เจ•เฉ‡ เจฆเฉ€ เจฒเฉ‹เฉœ เจธเฉ€เฅค เจฌเฉ‡เจธเจผเฉฑเจ•, เจนเจฐเฉ‡เจ• เจธเฉฐเจฐเจšเจจเจพ เจตเจฟเฉฑเจš 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 etcd เจฎเฉˆเจš เจ•เจพเจฒเจพเจ‚ เจคเฉ‹เจ‚ fdatasync WAL เจซเจพเจˆเจฒ เจกเจฟเจธเจ•เฉเจฐเจฟเจชเจŸเจฐเจพเจ‚ เจจเจพเจฒเฅค

เจจเจพเจฒ เจชเฉˆเจฆเจพ เจ•เจฐเจจ เจฒเจˆ fio etcd เจคเฉ‹เจ‚ เจธเจฎเจพเจจ เจ•เฉฐเจฎ เจฆเจพ เจฌเฉ‹เจ, เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจฆเฉ‡ เจฆเจธเจคเจพเจตเฉ‡เจœเจผเจพเจ‚ เจฆเจพ เจ…เจงเจฟเจเจจ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจ…เจคเฉ‡ เจธเจพเจกเฉ‡ เจ•เฉฐเจฎ เจฒเจˆ เจขเฉเจ•เจตเฉ‡เจ‚ เจฎเจพเจชเจฆเฉฐเจก เจšเฉเจฃเฉ‡ เจ—เจเฅค เจ…เจธเฉ€เจ‚ เจชเฉเจธเจผเจŸเฉ€ เจ•เฉ€เจคเฉ€ เจนเฉˆ เจ•เจฟ เจธเจนเฉ€ เจธเจฟเจธเจŸเจฎ เจ•เจพเจฒเจพเจ‚ เจšเฉฑเจฒ เจฐเจนเฉ€เจ†เจ‚ เจนเจจ เจ…เจคเฉ‡ เจšเฉฑเจฒ เจ•เฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจฎเจฟเจ†เจฆ เจฆเฉ€ เจชเฉเจธเจผเจŸเฉ€ เจ•เฉ€เจคเฉ€ เจนเฉˆ fio เจคเฉฑเจ• strace (เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‡เจน etcd เจฆเฉ‡ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€).

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

เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ…เจธเฉ€เจ‚ เจชเฉเจฐเจคเฉ€เจธเจผเจค เจตเจฟเฉฑเจš เจฆเจฟเจฒเจšเจธเจชเฉ€ เจฐเฉฑเจ–เจฆเฉ‡ เจธเฉ€, เจธเจพเจกเจพ เจ‰เจฆเฉ‡เจธเจผ เจ‡เจน เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃเจพ เจธเฉ€ เจ•เจฟ เจจเจฎเฉ‚เจจเจฟเจ†เจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจ…เฉฐเจ•เฉœเจพเจคเจฎเจ• เจฎเจนเฉฑเจคเจคเจพ เจฒเจˆ เจ•เจพเจซเจผเฉ€ เจตเฉฑเจกเฉ€ เจธเฉ€เฅค เจ…เจคเฉ‡ เจ‡เจน เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ 10^4 (เจœเฉ‹ เจ•เจฟ 22 MB เจฆเฉ‡ เจ†เจ•เจพเจฐ เจจเจพเจฒ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเจพ เจนเฉˆ) เจ•เจพเจซเฉ€ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค เจ›เฉ‹เจŸเฉ‡ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจฎเฉเฉฑเจฒ --size เจตเจงเฉ‡เจฐเฉ‡ เจธเจชเฉฑเจธเจผเจŸ เจธเจผเฉ‹เจฐ เจฆเจฟเฉฑเจคเจพ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ•เจพเจฒเจพเจ‚ fdatasync, เจœเฉ‹ เจ†เจฎ เจจเจพเจฒเฉ‹เจ‚ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจธเจฎเจพเจ‚ เจฒเฉˆเจ‚เจฆเฉ‡ เจนเจจ เจ…เจคเฉ‡ 99เจตเฉ‡เจ‚ เจชเฉเจฐเจคเฉ€เจธเจผเจค เจจเฉ‚เฉฐ เจชเฉเจฐเจญเจพเจตเจฟเจค เจ•เจฐเจฆเฉ‡ เจนเจจ)เฅค

เจ‡เจน เจคเฉเจนเจพเจกเฉ‡ เจคเฉ‡ เจนเฉˆ

เจฒเฉ‡เจ– เจฆเจฟเจ–เจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ•เจฟ เจ•เจฟเจตเฉ‡เจ‚ เจตเจฐเจคเจฃเจพ เจนเฉˆ fio เจ•เฉ‹เจˆ เจ‡เจน เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ เจ•เจฟ เจ•เฉ€ etcd เจจเจพเจฒ เจตเจฐเจคเจฃ เจฒเจˆ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจฎเฉ€เจกเฉ€เจ† เจ•เจพเจซเจผเฉ€ เจคเฉ‡เจœเจผ เจนเฉˆเฅค เจนเฉเจฃ เจ‡เจน เจคเฉเจนเจพเจกเฉ‡ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเจพ เจนเฉˆ! เจคเฉเจธเฉ€เจ‚ เจธเฉ‡เจตเจพ เจตเจฟเฉฑเจš SSD- เจ…เจงเจพเจฐเจฟเจค เจธเจŸเฉ‹เจฐเฉ‡เจœ เจจเจพเจฒ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจฆเฉ€ เจชเฉœเจšเฉ‹เจฒ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ†เจˆเจฌเฉ€เจเจฎ เจฌเฉฑเจฆเจฒ.

เจ…เจจเฉเจตเจพเจฆเจ• เจคเฉ‹เจ‚ เจชเฉ€.เจเจธ

เจฐเฉˆเจกเฉ€เจฎเฉ‡เจก เจตเจฐเจคเฉ‹เจ‚ เจฆเฉ‡ เจ•เฉ‡เจธเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ fio เจนเฉ‹เจฐ เจ•เฉฐเจฎเจพเจ‚ เจฒเจˆ, เจตเฉ‡เจ–เฉ‹ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจœเจพเจ‚ เจธเจฟเฉฑเจงเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ (เจฆเจธเจคเจพเจตเฉ‡เจœเจผเจพเจ‚ เจตเจฟเฉฑเจš เจœเจผเจฟเจ•เจฐ เจ•เฉ€เจคเฉ‡ เจ—เจ เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจนเฉ‹เจฐ เจนเจจ)เฅค

เจ…เจจเฉเจตเจพเจฆเจ• เจคเฉ‹เจ‚ เจชเฉ€.เจชเฉ€.เจเฉฑเจธ

เจธเจพเจกเฉ‡ เจฌเจฒเฉŒเจ— 'เจคเฉ‡ เจตเฉ€ เจชเฉœเฉเจนเฉ‹:

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹