etcd рд╕рд╛рдареА рдкреБрд░реЗрд╢рд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрд╕рд╛рдареА fio рд╕рд╣ рдбрд┐рд╕реНрдХ рдХрд╕реЗ рддрдкрд╛рд╕рд╛рдпрдЪреЗ

рдиреЛрдВрдж. рдЕрдиреБрд╡рд╛рдж: рд╣рд╛ рд▓реЗрдЦ IBM рдХреНрд▓рд╛рдЙрдб рдЕрднрд┐рдпрдВрддреНрдпрд╛рдВрдиреА etcd рдбреЗрдЯрд╛рдмреЗрд╕рдЪреНрдпрд╛ рдСрдкрд░реЗрд╢рдирд╢реА рд╕рдВрдмрдВрдзрд┐рдд рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╢реЛрдзрд╛рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рд▓рдШреБ-рд╕рдВрд╢реЛрдзрдирд╛рдЪрд╛ рдкрд░рд┐рдгрд╛рдо рдЖрд╣реЗ. рдПрдХ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛрддреЗ, рддрдерд╛рдкрд┐, рд▓реЗрдЦрдХрд╛рдВрдЪреНрдпрд╛ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдЖрдгрд┐ рдХреГрддреАрдВрдЪрд╛ рдХреЛрд░реНрд╕ рд╡рд┐рд╕реНрддреГрдд рд╕рдВрджрд░реНрднрд╛рдд рдордиреЛрд░рдВрдЬрдХ рдЕрд╕реВ рд╢рдХрддреЛ.

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 etcd рдмрджреНрджрд▓ рдХрд╛рд╣реА рд╢рдмреНрдж

рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд╛рдкрд░рддрд╛рдд рд╕рдХреНрд░рд┐рдп рд▓реЙрдЧрд┐рдВрдЧ (рд▓реЗрдЦрди-рдкреБрдвреЗ рд▓реЙрдЧрд┐рдВрдЧ, 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 рдХрд╛ рдирд┐рд╡рдбрд▓реЗ рдЖрдгрд┐ рддреЗ рдХрд╕реЗ рд╕реЗрдЯ рдХрд░рд╛рдпрдЪреЗ рддреЗ рдЖрдореНрд╣реА рд╢рд┐рдХрд▓реЛ

рд╣реА рдиреЛрдВрдж рдЖрдордЪреНрдпрд╛ рд╕рдореЛрд░ рдЖрд▓реЗрд▓реНрдпрд╛ рдПрдХрд╛ рдЦрд░реНтАНрдпрд╛ рдкреНрд░рдХрд░рдгрд╛рддреВрди рдЖрд▓реА рдЖрд╣реЗ. рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдкреНрд░реЛрдорд┐рдерд┐рдпрд╕рдЪреНрдпрд╛ рджреЗрдЦрд░реЗрдЦреАрд╕рд╣ Kubernetes 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 рд╕рд░реНрд╡реНрд╣рд░ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдЕрд╕рддрд╛рдирд╛ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА.

рдореНрд╣рдгреВрди рдЕрд╕реЗ рдЖрдврд│реВрди рдЖрд▓реЗ рдХреА рдбрдмреНрд▓реНрдпреВрдПрдПрд▓ рд░реЗрдХреЙрд░реНрдб рдмреНрд▓реЙрдХреНрд╕ рдЦреВрдк рдШрдирддреЗрдиреЗ рдЧрдЯрдмрджреНрдз рдЖрд╣реЗрдд, рдмрд╣реБрд╕рдВрдЦреНрдпрд╛рдВрдЪрд╛ рдЖрдХрд╛рд░ 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 рдЗрддрд░ рдХрд╛рдорд╛рдВрд╕рд╛рдареА, рдкрд╣рд╛ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рдХрд┐рдВрд╡рд╛ рдереЗрдЯ рдкреНрд░рдХрд▓реНрдк рднрд╛рдВрдбрд╛рд░ (рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдгрд╛рдд рдирдореВрдж рдХрд░рдгреНрдпрд╛рдкреЗрдХреНрд╖рд╛ рддреНрдпрд╛рдкреИрдХреА рдмрд░реЗрдЪ рдЖрд╣реЗрдд).

рдЕрдиреБрд╡рд╛рджрдХрд╛рдХрдбреВрди PPS

рдЖрдордЪреНрдпрд╛ рдмреНрд▓реЙрдЧрд╡рд░ рджреЗрдЦреАрд▓ рд╡рд╛рдЪрд╛:

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛