ืืขืจื. ืชืจืืื: ืืืืจ ืื ืืื ืชืืฆืื ืฉื ืืืงืจ ืืื ื ืฉืืืฆืข ืขื ืืื ืืื ืืกื IBM Cloud ืืืืคืืฉ ืืืจ ืคืชืจืื ืืืขืื ืืืืชืืช ืืงืฉืืจื ืืชืคืขืื ืฉื ืืกื ืื ืชืื ืื etcd. ืืฉืืื ืืืื ืืืืชื ืจืืืื ืืืช ืขืืืจื ื, ืืืื ืืืื ืืืจืืืจืื ืืืคืขืืืืช ืฉื ืืืืืจืื ืขืฉืื ืืืืืช ืืขื ืืื ืืืงืฉืจ ืจืื ืืืชืจ.
ืกืืืื ืงืฆืจ ืฉื ืืืืืจ ืืืื: fio ืืื'
ืืืืฆืืขืื ืฉื ืืฉืืื etcd ืชืืืืื ืืืื ืืืืืจืืช ืืืืกืื ืืืกืืกื. etcd ืืืืฆืืช ืืืื Prometheus ืฉืื ืื ืืื ืื ืืจ ืืช ืืืืฆืืขืื. ืืื ืืื ืืื wal_fsync_duration_seconds
. ืืชืืขืื ืขืืืจ ืืื'
ืื ืืชื ืฉืืงื ืืืืืืจ ืืฉืืื etcd ืืืืื ืืช ืืื ืืงืก ืืืจืฆืื ื ืืืืืง ืื ืืื ื ืื (ืืืื SSD) ืืืืจืื ืืกืคืืง, ืื ื ืืืืืฆืื ืืืฉืชืืฉ ืืืืืง ื-I/O ืืคืืคืืืจื ืื ืงืจื test-data
ืืืื ืืืืืช ืืืืงื ืืืืืฆื ืืืืชืงื ืช ืฉื ืืืื ื ืื ืืืง):
fio --rw=write --ioengine=sync --fdatasync=1 --directory=test-data --size=22m --bs=2300 --name=mytest
ื ืืชืจ ืจืง ืืืกืชืื ืขื ืืคืื ืืืืืืง ืื ืืืืืืื ื-99 ืืชืืื fdatasync
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]
ืืื ืืขืจืืช:
- ืืืืืื ืืขืื, ืืชืืื ื ืืช ืืคืจืืืจืื
--size
ะธ--bs
ืืืงืจื ืกืคืฆืืคื. ืืื ืืงืื ืชืืฆืื ืืฉืืขืืชืืชfio
, ืฆืืื ืขืจืืื ืืืชืืืืื ืืืงืจื ืืฉืืืืฉ ืฉืื. ืืืฆื ืืืืืจ ืืืชื ืืืืื ื ืืืื. - ืืืืื ืืืืืงื ืืืื
fio
ืืืขื ืืช ืชืช-ืืขืจืืช ืืืืกืง. ืืืืื ืืืืืชืืื, ืกืืืจ ืืื ืื ืฉืชืืืืืื ืืืจืื ืืืชืื ืืืืกืง (ืืืื ืืื ืืงืฉืืจืื ืwal_fsync_duration_seconds
). ืขืืืก ื ืืกืฃ ืื ืืืื ืืืืืwal_fsync_duration_seconds
. ืืืืืื ืืืจืืช, ืื ืืืืืืื ื-99 ืืืืืงื ืขืfio
, ืจืง ืืขื ืคืืืช ื-10 ืืืคืืืช ืืฉื ืืื, ืืฉ ืกืืืื ืืื ืฉืืืฆืืขื ืืืืกืื ืืื ื ืืกืคืืงืื. - ืขืืืจ ืืืืืงื ืชืฆืืจื ืืช ืืืจืกื
fio
ืื ื ืืื ื 3.5ืื ืืจืกืืืช ืืฉื ืืช ืืืชืจ ืืื ื ืฆืืืจืืช ืชืืฆืืืชfdatasync
ืืฆืืจื ืฉื ืืืืืื ืื. - ืืืกืงื ื ืืขืื ืืื ืจืง ืงืืข ืงืื ืืืืกืงื ื ืืืืืืช
fio
.
ืขืื ืขื fio ื- etcd
ืืื ืืืืื ืขื WALs ืืื'
ืืืจื ืืื, ืืกืื ื ืชืื ืื ืืฉืชืืฉืื
ืืคืืื, ืืื ืคืขื ืฉืืงืื ืืืกืืฃ ืืคืชื ืืืืืจ ื-KV ืื ืืขืืื ืืช ืืขืจื ืฉื ืืคืชื ืงืืื, ืืื' ืืืกืืฃ ืืช ืชืืืืจ ืืคืขืืื ื-WAL, ืฉืืื ืงืืืฅ ืจืืื ื-persistent store. etcd ืืืื ืืืืืช ืืืื ื-100% ืฉืขืจื ื-WAL ืืื ื ืฉืืจ ืืคื ื ืฉืชืืฉืื. ืืื ืืืฉืื ืืืช ืืืื ืืงืก, ืื ืื ืืกืคืืง ืืืฉืชืืฉ ืืงืจืืืช ืืืขืจืืช write
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. ืืชืืขืื ืืืืืจ fdatasync
ืืืฉืจ ืืืชืืื ืืงืืืฅ WAL ืืืืชื ืคืืืช ื-10 ืืืคืืืช ืืฉื ืืื. ืืฉื ื ืืืืื ืืืจืื ืืงืฉืืจืื ืืืืกืื, ืื ืืืืจ ืื ืืชืืงื ืืื.
ืืขืจืืช ืืืกืื ืขื fio
ืืชื ืืืื ืืืขืจืื ืื ืืืกืื ืืกืืื ืืชืืื ืืฉืืืืฉ ืขื etcd ืืืืฆืขืืช ืืื ืืฉืืจืืช 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 ืืฉืืจืืช
ื .ื ืืืืชืจืื
ืขื ืืงืจื ืฉืืืืฉ ืืืื ืื fio
ืืืฉืืืืช ืืืจืืช, ืจืื
PPS ืืืืชืจืื
ืงืจื ืื ืืืืื ืฉืื ื:
- ยซ
etcd 3.4.3: ืืืงืจ ืืืื ืืช ืืืืืื ืืืืกืื "; - ยซ
ืื ืืกืืื ืฉืื ื ืขื ื ืชืื ืื ืืืฉืืื Kubernetes etcd ืืฉืืจืืช (ืืื K8s API) "; - ยซ
6 ืืืื ืืขืจืืช ืืฉืขืฉืขืื ืืชืคืขืื ืฉื Kubernetes [ืืืคืชืจืื ืฉืืื] ".
ืืงืืจ: www.habr.com