ืกืืคืืจ ืงืฆืจ ืขื ืคืื ืืื'
ืืืฆืืขื ืืฉืืื
fio --rw=write --ioengine=sync --fdatasync=1 --directory=test-data --size=22m --bs=2300 --name=mytest
ืืชื ืจืง ืฆืจืื ืืืกืชืื ืขื ืืชืืฆืืืช ืืืืืืง ืฉืืืืืืื ื-99 ืฉื ืืฉื ืืืื
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
ืืืจื ืืื ืืฉืชืืฉืื ืืืกืืกื ื ืชืื ืื
ืืืฉืจ ืืงืื ืืืกืืฃ ืืคืชื ืืืืืจ ืืคืชื-ืขืจื ืื ืืขืืื ืืช ืืขืจื ืฉื ืืคืชื ืงืืื, ืืื' ืืชืขื ืืช ืืคืขืืื ื-WAL, ืฉืืื ืงืืืฅ ืจืืื ืืืืกืื ืืชืืฉื. etcd ืืืื ืืืืืช ืืืื ืืืืืืื ืฉืื ืืกืช ื-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 ืืืคืืขื.
ืืขืจืืช ืืืกืื ืขื fio
ืื ืืชื ืฆืจืื ืืืขืจืื ืื ืืืืกืื ืฉืื ืืชืืื ื-etcd, ืืฉืชืืฉ ื-fio, ืืื ืคืืคืืืจื ืืืื ืืืืืงืช ืขืืืกื I/O. ืืฉ ืืืืืจ ืฉืคืขืืืืช ืืืืกืง ืืืืืืช ืืืืืช ืฉืื ืืช ืืืื: ืกืื ืืจืื ื ืื-ืกืื ืืจืื ื, ืืืืงืืช ืจืืืช ืฉื ืงืจืืืืช ืืขืจืืช ืืื'. ืืชืืฆืื ืืื, ืคืo ืื ืงืฉื ืืฉืืืืฉ. ืืฉ ืื ืคืจืืืจืื ืจืืื, ืืฉืืืืืื ืฉืื ืื ืฉื ืืขืจืืื ืฉืืื ืืืืฆืจืื ืขืืืกื ืขืืืื I/O ืฉืื ืื ืืืื. ืืื ืืงืื ื ืชืื ืื ื ืืืชืื ืขืืืจ etcd, ืขืืื ืืืืื ืฉืขืืืก ืืืชืืื ืืืืืงื ื-fio ืงืจืื ืืื ืืืคืฉืจ ืืขืืืก ืืคืืขื ื-etcd ืืขืช ืืชืืืช ืงืืฆื WAL.
ืืื, fio ืฆืจืื, ืืื ืืคืืืช, ืืืฆืืจ ืขืืืก ืฉื ืกืืจื ืฉื ืืชืืื ืจืฆืืคื ืืงืืืฅ, ืื ืืชืืื ืชืืื ืืืจืืืช ืืงืจืืื ืืืขืจืืช
ืืื ืืืืืง ืคืื ืืืื ืืืื ื ืืืืืืจ ืืช ืื
ืืคืืกื ืื, ืื ื ืืชืืจืื ืืงืจื ืืืืชื. ืืฉ ืื ื ืืฉืืื
ืืื ืืฉืืื ืื, ืืื ืฆืจืืืื ืืคืชืืจ ืฉืชื ืืขืืืช. ืจืืฉืืช, ืืื ื ืจืื ืขืืืก ื-I/O ืฉืืืฆืจ ืืื' ืืขืช ืืชืืื ื-WAL? ืืืืื ืฉืืืืช ืืขืจืืช ืืฉืชืืฉืื? ืื ืืืื ืืจืฉืืืืช? ืฉื ืืช, ืื ื ืขื ื ืขื ืืฉืืืืช ืืืื, ืืื ื ืืฆืืจ ืขืืืก ืขืืืื ืืืื ืขื fio? ืื ืชืฉืื ืฉ-fio ืืื ืืื ืืืื ืืืืฉ ืขื ืืคืฉืจืืืืช ืจืืืช. ืคืชืจื ื ืืช ืฉืชื ืืืขืืืช ืืืืฉื ืืืช - ืืืืฆืขืืช ืืคืงืืืืช
ืืฉืชืืฉื ื ืืจืืฉืื ื ื-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 ืืคื ืื
ืืงืืจ: www.habr.com