เบ„เบงเบฒเบกเป„เบงเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบš etcd? เบ‚เปเปƒเบซเป‰ fio

เบ„เบงเบฒเบกเป„เบงเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบš etcd? เบ‚เปเปƒเบซเป‰ fio

เป€เบฅเบทเปˆเบญเบ‡เบชเบฑเป‰เบ™เบเปˆเบฝเบงเบเบฑเบš fio เปเบฅเบฐ เบญเบทเปˆเบ™เป†

เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบธเปˆเบก เปเบฅเบฐเบญเบทเปˆเบ™ เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เบญเบ‡เบกเบฑเบ™. etcd เบชเบปเปˆเบ‡เบญเบญเบเบšเบฒเบ‡ metrics เบเบฑเบš Prometheusเป€เบžเบทเปˆเบญเปƒเบซเป‰เบ‚เปเป‰เบกเบนเบ™เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, wal_fsync_duration_seconds metric. เป€เบญเบเบฐเบชเบฒเบ™เบชเปเบฒเบฅเบฑเบš etcd เป€เบงเบปเป‰เบฒเบงเปˆเบฒ: เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเบˆเบฐเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเป„เบงเบžเบฝเบ‡เบžเป, เป€เบ›เบตเป€เบŠเบฑเบ™ 99 เบ‚เบญเบ‡ metric เบ™เบตเป‰เบˆเบฐเบ•เป‰เบญเบ‡เบซเบ™เป‰เบญเบเบเบงเปˆเบฒ 10ms. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เบงเบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเบธเปˆเบก etcd เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡ Linux เปเบฅเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เบงเปˆเบฒเบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป„เบงเบžเบฝเบ‡เบžเป (เป€เบŠเบฑเปˆเบ™: SSD), เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰. fio เป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบ™เบดเบเบปเบกเปƒเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ I/O. เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰, เบšเปˆเบญเบ™เบ—เบตเปˆ test-data เปเบกเปˆเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบžเบฒเบเปƒเบ•เป‰เบˆเบธเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™:

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

เบ—เปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบšเบดเปˆเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปเบฅเบฐเบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เบฎเป‰เบญเบเบฅเบฐ 99 เบ‚เบญเบ‡เป„เบฅเบเบฐเป€เบงเบฅเบฒ fdatasync เปœเป‰เบญเบเบเบงเปˆเบฒ 10 ms. เบ–เป‰เบฒเป€เบ›เบฑเบ™เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบกเบตเบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป„เบงเบชเบปเบกเบ„เบงเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš:

  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, เปƒเบซเป‰เบ„เบธเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡. เป„เบ›เป€เบญเบปเบฒเบžเบงเบเบกเบฑเบ™เบขเบนเปˆเปƒเบช? เบญเปˆเบฒเบ™ เบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฝเบ™เบฎเบนเป‰เบ—เบตเปˆเบˆเบฐ configure fio.
  • เปƒเบ™โ€‹เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบšโ€‹, เบเบฒเบ™โ€‹เป‚เบซเบผเบ” I/O เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เปเบกเปˆเบ™โ€‹เบกเบฒโ€‹เบˆเบฒเบ fioโ€‹. เปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบŠเบตเบงเบดเบ”เบˆเบดเบ‡, เบญเบฒเบ”เบˆเบฐเบกเบตเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เบ‚เบฝเบ™เบญเบทเปˆเบ™เป€เบ‚เบปเป‰เบฒเบกเบฒเปƒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบชเบดเปˆเบ‡เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš wal_fsync_duration_seconds. เบเบฒเบ™เป‚เบซเบผเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบˆเบฐเป€เบžเบตเปˆเบกเบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡ wal_fsync_duration_seconds. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ–เป‰เบฒเป€เบ›เบตเป€เบŠเบฑเบ™เบ—เบต 99 เปƒเบเป‰เบเบฑเบš 10ms, เบžเบทเป‰เบ™เบ—เบตเปˆเบˆเบฑเบ”เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบเบณเบฅเบฑเบ‡เบˆเบฐเปเบปเบ”เป„เบง.
  • เป€เบญเบปเบฒเบชเบฐเบšเบฑเบš fio เบšเปเปˆเบ•เปเปˆเบฒเบเบงเปˆเบฒ 3.5 (เบญเบฑเบ™เบเปˆเบญเบ™เปœเป‰เบฒเบ™เบตเป‰เบšเปเปˆเบชเบฐเปเบ”เบ‡เบ„เปˆเบฒเป€เบ›เบตเป€เบŠเบฑเบ™เบ‚เบญเบ‡เป„เบฅเบเบฐเป€เบงเบฅเบฒ fdatasync).
  • เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบ™เบตเป‰เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบˆเบฒเบ fio.

เป€เบฅเบทเปˆเบญเบ‡เบเบฒเบงเบเปˆเบฝเบงเบเบฑเบš fio เปเบฅเบฐเบญเบทเปˆเบ™เป†

WAL เปเบกเปˆเบ™เบซเบเบฑเบ‡เปƒเบ™เปเบฅเบฐเบญเบทเปˆเบ™เป†

เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบŠเป‰ เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบ‚เบฝเบ™เบฅเปˆเบงเบ‡เปœเป‰เบฒ; etcd เปƒเบŠเป‰เบกเบฑเบ™เบ„เบทเบเบฑเบ™. เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบšเปเปˆเบ›เบถเบเบชเบฒเบซเบฒเบฅเบทเบเปˆเบฝเบงเบเบฑเบšเบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบ‚เบฝเบ™เบฅเปˆเบงเบ‡เปœเป‰เบฒ (WAL) เปƒเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ—เบตเปˆเบ™เบตเป‰. เบกเบฑเบ™เบžเบฝเบ‡เบžเปเบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒเบ—เบตเปˆเบˆเบฐเบฎเบนเป‰เบงเปˆเบฒเบชเบฐเบกเบฒเบŠเบดเบเปเบ•เปˆเบฅเบฐเบ„เบปเบ™เบ‚เบญเบ‡เบเบธเปˆเบก etcd เบฎเบฑเบเบชเบฒเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡. etcd เบ‚เบฝเบ™เปเบ•เปˆเบฅเบฐเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ key-value (เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡) เบเบฑเบš WAL เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰เบกเบฑเบ™เบเบฑเบšเบฎเป‰เบฒเบ™. เบ–เป‰เบฒเบซเบ™เบถเปˆเบ‡เปƒเบ™เบชเบฐเบกเบฒเบŠเบดเบเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™เบ‚เบฑเบ”เบ‚เป‰เบญเบ‡เปเบฅเบฐเบ›เบดเบ”เป€เบ›เบตเบ”เปƒเบซเบกเปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ–เปˆเบฒเบเบžเบฒเบš, เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบŸเบทเป‰เบ™เบŸเบนเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบขเบนเปˆเปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ snapshot เบชเบธเบ”เบ—เป‰เบฒเบเป‚เบ”เบเป€เบ™เบทเป‰เบญเบซเบฒ WAL.

เป€เบกเบทเปˆเบญเบฅเบนเบเบ„เป‰เบฒเป€เบžเบตเปˆเบกเบเบฐเปเบˆเปƒเบชเปˆเบšเปˆเบญเบ™เป€เบเบฑเบšเบ„เปˆเบฒเบ„เบต เบซเบผเบทเบญเบฑเบšเป€เบ”เบ”เบ„เปˆเบฒเบ‚เบญเบ‡เบเบฐเปเบˆเบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง, etcd เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™ WAL, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เป„เบŸเบฅเปŒเบ›เบปเบเบเบฐเบ•เบดเปƒเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆ. etcd เบ•เป‰เบญเบ‡เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบเบฒเบ™เป€เบ‚เบปเป‰เบฒ WAL เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบˆเบดเบ‡เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบชเบทเบšเบ•เปเปˆเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡. เปƒเบ™ Linux, เบเบฒเบ™เป‚เบ—เบฅเบฐเบšเบปเบšเบ”เบฝเบงเบšเปเปˆเบžเบฝเบ‡เบžเปเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰. เบ‚เบฝเบ™, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบ‚เบฝเบ™เบ•เบปเบงเบˆเบดเบ‡เบเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบเบญเบฒเบ”เบˆเบฐเบŠเบฑเบเบŠเป‰เบฒ. เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™, Linux เบญเบฒเบ”เบˆเบฐเป€เบเบฑเบš WAL เป€เบ‚เบปเป‰เบฒเบขเบนเปˆเปƒเบ™ cache เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบญเบ‡เปเบเปˆเบ™ (เป€เบŠเบฑเปˆเบ™: cache เบซเบ™เป‰เบฒ) เบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เป€เบงเบฅเบฒ. เปเบฅเบฐเป€เบžเบทเปˆเบญเปƒเบซเป‰เบ‚เปเป‰เบกเบนเบ™เบ–เบทเบเบ‚เบฝเบ™เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ„เบปเบ‡เบ—เบตเปˆ, เบเบฒเบ™เป‚เบ—เบฅเบฐเบšเบปเบš 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. เบกเบต metrics เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบญเบทเปˆเบ™เป†เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ, เปเบ•เปˆเปƒเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบžเบฝเบ‡เปเบ•เปˆเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบš metric เบ™เบตเป‰.

เบเบฒเบ™โ€‹เบ„เบฒเบ”โ€‹เบ„เบฐโ€‹เป€เบ™โ€‹เบเบฒเบ™โ€‹เป€เบเบฑเบšโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹เบ—เบตเปˆโ€‹เบกเบต fioโ€‹

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เบงเปˆเบฒเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบš etcd, เปƒเบŠเป‰ fio, เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เป‚เบซเบผเบ” I/O เบ—เบตเปˆเบ™เบดเบเบปเบกเบซเบผเบฒเบ. เบกเบฑเบ™เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบฅเบฐเบ™เบถเบเป€เบ–เบดเบ‡เบงเปˆเบฒเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เปเบœเปˆเบ™เบชเบฒเบกเบฒเบ”เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบซเบผเบฒเบ: synchronous เปเบฅเบฐ asynchronous, เบซเบผเบฒเบเป†เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ—เบฅเบฐเบšเบปเบš, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, fio เปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบเบฒเบเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰. เบกเบฑเบ™เบกเบตเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบ, เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบชเบปเบกเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบญเบ‡เบ„เบธเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เป‚เบซเบผเบ” I / O เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบซเบผเบฒเบ. เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบ•เบปเบงเป€เบฅเบเบ—เบตเปˆเบžเบฝเบ‡เบžเปเบชเปเบฒเบฅเบฑเบš etcd, เบ—เปˆเบฒเบ™เบ„เบงเบ™เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบ‚เบฝเบ™เบˆเบฒเบ fio เปเบกเปˆเบ™เปƒเบเป‰เบŠเบดเบ”เป€เบ—เบปเปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบเบฑเบšเบเบฒเบ™เป‚เบซเบผเบ”เบ•เบปเบงเบˆเบดเบ‡เบˆเบฒเบ etcd เป€เบกเบทเปˆเบญเบ‚เบฝเบ™เป„เบŸเบฅเปŒ WAL.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบ, fio เบ„เบงเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบ‚เบญเบ‡เบŠเบธเบ”เบเบฒเบ™เบ‚เบฝเบ™เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบšเป„เบ›เบซเบฒเป„เบŸเบฅเปŒ, เปเบ•เปˆเบฅเบฐเบเบฒเบ™เบ‚เบฝเบ™เบˆเบฐเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบเบฒเบ™เป€เบญเบตเป‰เบ™เบฅเบฐเบšเบปเบš. เบ‚เบฝเบ™เบ•เบดเบ”เบ•เบฒเบกเบ”เป‰เบงเบเบเบฒเบ™เป‚เบ—เบซเบฒเบฅเบฐเบšเบปเบš fdatasync. เบเบฒเบ™เบ‚เบฝเบ™เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบšเป„เบ›เบซเบฒ fio เบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบ --rw=write. เบชเปเบฒเบฅเบฑเบš fio เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ—เบซเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ‚เบฝเบ™, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ เบ‚เบฝเบ™, เบ—เปˆเบฒเบ™เบ„เบงเบ™เบฅเบฐเบšเบธเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต --ioengine=sync. เบชเบธเบ”เบ—เป‰เบฒเบ, เป€เบžเบทเปˆเบญเป‚เบ—เบซเบฒ fdatasync เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ‚เบฝเบ™เปเบ•เปˆเบฅเบฐเบ„เบฑเป‰เบ‡, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบžเบตเปˆเบกเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต --fdatasync=1. เบญเบตเบเบชเบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ™เบตเป‰ (--size เปเบฅเบฐ -bs) เปเบกเปˆเบ™เบชเบฐเบ„เบฃเบดเบšเบชเบฐเป€เบžเบฒเบฐ. เปƒเบ™เบžเบฒเบเบ•เปเปˆเป„เบ›, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบซเบฑเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบžเบงเบเบกเบฑเบ™.

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡ fio เปเบฅเบฐเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบฎเบฝเบ™เบฎเบนเป‰เบ—เบตเปˆเบˆเบฐเบ•เบฑเป‰เบ‡เบกเบฑเบ™

เปƒเบ™เบšเบปเบ”เบ‚เบฝเบ™เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡. เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบเบธเปˆเบก Kubernetes v1.13 เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เบดเบ”เบ•เบฒเบกเบเบฑเบš Prometheus. etcd v3.2.24 เบ–เบทเบเป‚เบฎเบ”เบขเบนเปˆเปƒเบ™ SSD. Etcd metrics เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™ fdatasync latencies เบชเบนเบ‡เป€เบเบตเบ™เป„เบ›, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ cluster เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เบซเบเบฑเบ‡. เบเบฒเบ™เบงเบฑเบ”เปเบ—เบเปเบกเปˆเบ™เปเบ›เบ เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบเปเปˆเบšเปเปˆเบฎเบนเป‰เบงเปˆเบฒเบกเบฑเบ™เปเบฒเบเป€เบ–เบดเบ‡เบซเบเบฑเบ‡. เบเบธเปˆเบกเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡ virtual, เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒเบšเบฑเบ™เบซเบฒเปเบกเปˆเบ™เบซเบเบฑเบ‡: เปƒเบ™ SSDs เบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบเบซเบผเบทเปƒเบ™เบŠเบฑเป‰เบ™ virtualization. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบกเบฑเบเบˆเบฐเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบฎเบฒเบ”เปเบง เปเบฅเบฐเบŠเบญเบšเปเบง, เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบกเบฑเบ™. เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ etcd เปƒเบ™เบ—เบธเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบฅเบฐเป€เบšเบดเปˆเบ‡ Prometheus metrics, เปเบ•เปˆเบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเบซเบผเบฒเบ. เบžเบงเบเป€เบฎเบปเบฒเบŠเบญเบเบซเบฒเบงเบดเบ—เบตเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบžเปเบชเบปเบกเบ„เบงเบ™เป€เบžเบทเปˆเบญเบ›เบฐเป€เบกเบตเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเบฐเป€เบžเบฒเบฐ. เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเป€เบ‚เบปเป‰เบฒเปƒเบˆ Prometheus metrics เบˆเบฒเบ etcd เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡.

เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰, เบชเบญเบ‡เบšเบฑเบ™เบซเบฒเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚. เบ—เปเบฒเบญเบดเบ”, I/O load เบ—เบตเปˆ etcd เบชเป‰เบฒเบ‡เป€เบกเบทเปˆเบญเบ‚เบฝเบ™เปƒเบชเปˆ WAL เบกเบตเบฅเบฑเบเบชเบฐเบ™เบฐเปเบ™เบงเปƒเบ”? เปƒเบŠเป‰เบฅเบฐเบšเบปเบšเปƒเบ”เปเบ”เปˆ? เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบเปเบกเปˆเบ™เบซเบเบฑเบ‡? เบญเบฑเบ™เบ—เบตเบชเบญเบ‡, เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบ•เบญเบšเบ„เปเบฒเบ–เบฒเบกเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เป€เบฎเบฑเบ”เปเบ™เบงเปƒเบ”เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš fio? เบขเปˆเบฒเบฅเบทเบกเบงเปˆเบฒ fio เป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™เบซเบผเบฒเบเบ—เบตเปˆเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบซเบผเบฒเบ. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ—เบฑเบ‡เบชเบญเบ‡เบขเปˆเบฒเบ‡เบ”เป‰เบงเบเบงเบดเบ—เบตเบ”เบฝเบง - เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡ lsof ะธ เบชเบฒเบเปเบฎเปˆ. lsof เบฅเบฒเบเบŠเบทเปˆเบ•เบปเบงเบญเบฐเบ—เบดเบšเบฒเบเป„เบŸเบฅเปŒเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เปเบฅเบฐเป„เบŸเบฅเปŒเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ. เปเบฅเบฐเบกเบตเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเบงเบ”เป€เบšเบดเปˆเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเปเบฅเปˆเบ™เปเบฅเป‰เบง, เบซเบผเบทเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เปเบฅเบฐเบเบงเบ”เป€เบšเบดเปˆเบ‡เบกเบฑเบ™. strace เบžเบดเบกเบเบฒเบ™เป‚เบ—เบฅเบฐเบšเบปเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฒเบเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเบ–เบทเบเบเบงเบ”เบชเบญเบš (เปเบฅเบฐเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบฅเบนเบเบ‚เบญเบ‡เบกเบฑเบ™). เบญเบฑเบ™เบชเบธเบ”เบ—เป‰เบฒเบเปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบก เบชเบณ เบ„เบฑเบ™เบซเบผเบฒเบ, เป€เบžเบฒเบฐเบงเปˆเบฒ etcd เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™.

เบžเบงเบเป€เบฎเบปเบฒเบ—เปเบฒเบญเบดเบ”เปƒเบŠเป‰ strace เป€เบžเบทเปˆเบญเบ„เบปเป‰เบ™เบซเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ etcd เบชเปเบฒเบฅเบฑเบš Kubernetes เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เป‚เบซเบผเบ”เบขเบนเปˆเปƒเบ™ cluster. เบžเบงเบเป€เบฎเบปเบฒเป€เบซเบฑเบ™เบงเปˆเบฒเบšเบฑเบ™เบ—เบถเบ WAL เป€เบเบทเบญเบšเบ—เบฑเบ‡เปเบปเบ”เบกเบตเบ‚เบฐเปœเบฒเบ”เบ”เบฝเบงเบเบฑเบ™: 2200-2400 bytes. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เบ•เบญเบš, เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบ™เบปเบ”เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต -bs=2300 (bs เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบ™ bytes เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐ fio entry). เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบฅเบฒเบเบเบฒเบ™ etcd เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบฎเบธเปˆเบ™ etcd, เบเบฒเบ™เปเบˆเบเบขเบฒเบ, เบ„เปˆเบฒเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต, เปเบฅเบฐเบญเบทเปˆเบ™เป†, เปเบฅเบฐเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเป„เบฅเบเบฐเป€เบงเบฅเบฒ fdatasync. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™, เบเบงเบ”เป€เบšเบดเปˆเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™ etcd เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ”เป‰เบงเบ strace เป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒเบ•เบปเบงเป€เบฅเบเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™.

เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบšเบ„เบงเบฒเบกเบ„เบดเบ”เบ—เบตเปˆเบ”เบตเบเปˆเบฝเบงเบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒ etcd เบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”, เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบกเบฑเบ™เบ”เป‰เบงเบ strace เปเบฅเบฐเบ—เบฒเบ‡เป€เบฅเบทเบญเบ -ffttT. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบžเบฐเบเบฒเบเบฒเบกเบเบงเบ”เป€เบšเบดเปˆเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ‚เบญเบ‡เป€เบ”เบฑเบเปเบฅเบฐเบšเบฑเบ™เบ—เบถเบเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเบ„เบปเบ™เปƒเบ™เป„เบŸเบฅเปŒเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เปเบฅเบฐเบเบฑเบ‡เป„เบ”เป‰เบฎเบฑเบšเบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเบฐเป„เบฅเบเบฐเป€เบงเบฅเบฒเบ‚เบญเบ‡เบเบฒเบ™เป‚เบ—เปเบ•เปˆเบฅเบฐเบฅเบฐเบšเบปเบš. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เปƒเบŠเป‰ lsof เป€เบžเบทเปˆเบญเบขเบทเบ™เบขเบฑเบ™เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบเปˆเบฝเบงเบเบฑเบšเบœเบปเบ™เบœเบฐเบฅเบดเบ” strace เปเบฅเบฐเป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบ•เบปเบงเบญเบฐเบ—เบดเบšเบฒเบเป„เบŸเบฅเปŒเปƒเบ”เบ–เบทเบเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เปƒเบ”. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ”เป‰เบงเบเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบ‚เบญเบ‡ strace, เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบ™เบตเป‰เป„เบ”เป‰เบฎเบฑเบš. เบชเบฐเบ–เบดเบ•เบดเป€เบงเบฅเบฒ synchronization เบขเบทเบ™เบขเบฑเบ™เบงเปˆเบฒ wal_fsync_duration_seconds เบˆเบฒเบ etcd เปเบกเปˆเบ™เบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบเบฒเบ™เป‚เบ— fdatasync เบเบฑเบšเบ•เบปเบงเบญเบฐเบ—เบดเบšเบฒเบเป„เบŸเบฅเปŒ WAL.

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบœเปˆเบฒเบ™เป€เบญเบเบฐเบชเบฒเบ™เบชเปเบฒเบฅเบฑเบš fio เปเบฅเบฐเป€เบฅเบทเบญเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเปเบฒเบฅเบฑเบšเบชเบฐเบ„เบดเบšเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบžเบทเปˆเบญเปƒเบซเป‰ fio เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš etcd. เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เป„เบ”เป‰เบเบงเบ”เป€เบšเบดเปˆเบ‡เบเบฒเบ™เป‚เบ—เบฅเบฐเบšเบปเบšเปเบฅเบฐเป„เบฅเบเบฐเป€เบงเบฅเบฒเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเป‚เบ”เบเบเบฒเบ™เปเบฅเปˆเบ™ fio เบˆเบฒเบ strace, เบ„เป‰เบฒเบเบ„เบทเบเบฑเบš etcd.

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบฅเบทเบญเบเบขเปˆเบฒเบ‡เบฅเบฐเบกเบฑเบ”เบฅเบฐเบงเบฑเบ‡เบ„เปˆเบฒเบ‚เบญเบ‡เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™ --size เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เบเบฒเบ™เป‚เบซเบผเบ” I/O เบ—เบฑเบ‡เปเบปเบ”เบˆเบฒเบ fio. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบ™เบตเป‰เปเบกเปˆเบ™เบˆเปเบฒเบ™เบงเบ™ bytes เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบ–เบทเบเบ‚เบฝเบ™เป„เบงเป‰เปƒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™. เบกเบฑเบ™เป„เบ”เป‰เบซเบฑเบ™เบญเบญเบเป€เบ›เบฑเบ™เบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เป‚เบ”เบเบเบปเบ‡เบเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ‚เบฝเบ™ (เปเบฅเบฐ fdatasync) เบเบฒเบ™เป‚เบ—เบฅเบฐเบšเบปเบš. เบชเปเบฒเบฅเบฑเบšเบ„เปˆเบฒเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ‚เบญเบ‡ bs, เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เป‚เบ— fdatasync = เบ‚เบฐเบซเบ™เบฒเบ” / bs. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆเปƒเบ™เบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เบฎเป‰เบญเบ, เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบกเบตเบ•เบปเบงเบขเปˆเบฒเบ‡เบžเบฝเบ‡เบžเปเป€เบžเบทเปˆเบญเปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒ, เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบ„เบดเบ”เป„เบฅเปˆเบงเปˆเบฒ 10^4 เบˆเบฐเบžเบฝเบ‡เบžเปเบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ (เบ™เบฑเป‰เบ™เปเบกเปˆเบ™ 22 mebibytes). เบ–เป‰เบฒ --size เปเบกเปˆเบ™เบ™เป‰เบญเบเบเบงเปˆเบฒ, outliers เบญเบฒเบ”เบˆเบฐเป€เบเบตเบ”เบ‚เบถเป‰เบ™ (เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เป‚เบ— fdatasync เบซเบผเบฒเบเบ„เบฑเป‰เบ‡เปƒเบŠเป‰เป€เบงเบฅเบฒเบ”เบปเบ™เบเบงเปˆเบฒเบ›เบปเบเบเบฐเบ•เบดเปเบฅเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเป€เบ›เบตเป€เบŠเบฑเบ™เบ—เบต 99).

เบฅเบญเบ‡เปƒเบŠเป‰เป€เบญเบ‡

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบซเบฑเบ™เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰ fio เปเบฅเบฐเป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบงเบžเบฝเบ‡เบžเปเบชเปเบฒเบฅเบฑเบš etcd เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบ”เบต. เบ•เบญเบ™เบ™เบตเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบฅเบญเบ‡เปƒเบŠเป‰เบกเบฑเบ™เบ”เป‰เบงเบเบ•เบปเบงเบ—เปˆเบฒเบ™เป€เบญเบ‡เป‚เบ”เบเปƒเบŠเป‰, เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบ„เบทเปˆเบญเบ‡ virtual เบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ SSD เปƒเบ™ IBM Cloud.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™