🖥️ Gweithrediadau TG — dibynadwyedd safle Model byw
Rydych chi ar alwad ar gyfer gwasanaeth gwe: cydbwysydd llwyth o flaen fflyd o achosion, storfa dros dro o flaen cronfa ddata, ac amcan argaeledd 99.9 %. Bob munud mae'r model yn cyfrifo oedi ciwio, terfynau amser, trawiadau'r storfa a llwyth y gronfa ddata o fformiwlâu gwerslyfr — a beth mae eich penderfyniadau'n ei gostio.
Beth fyddwch chi'n ei ddysgu
Pam mae hwyrni'n ffrwydro ger defnydd llawn (Erlang C), a pham mae awtoraddio gydag oedi cychwyn bob amser yn cyrraedd yn hwyr.
Sut mae SLOs, cyllidebau gwallau a rhybuddion cyfradd llosgi yn penderfynu pryd i rolio'n ôl.
Sut mae storfa oer yn troi'n doriad cronfa ddata, a pha liferi sy'n prynu amser: gollwng, diraddio, cynhesu.
Efelychydd
Amser 0 mun
▶Achos yn gwasanaethu
⚙Achos yn cychwyn
!Achos ar yr adeilad gwael
·Slot rhydd
•Ceisiadau'n dod i mewn
Rheolyddion
Llawr y fflyd. Mae ei godi yn lansio achosion ar unwaith — maen nhw'n dal angen yr oedi cychwyn cyn gwasanaethu.
Tracio targed ar ddefnydd; dim graddio allan newydd tra bo achosion yn dal i gychwyn. I ffwrdd = yn union y lleiafswm.
Is = mwy o le i anadlu a mwy o gost. Ni all defnydd a fesurir fod dros 100 %, felly mae fflyd dirlawn yn tyfu fesul cam yn unig.
TTL hirach = mwy o drawiadau, ond gall atebion fod yn hŷn (oedran cymedrig ≈ TTL/2).
Yn llwytho allweddi poeth am 6 munud (+12 % o'r storfa dros dro y funud) ar gost 600 ymholiad cronfa ddata/s ychwanegol.
Cyfran o'r 30 % blaenoriaeth isel (rhagôl, swp, ymlusgwyr) a wrthodir wrth y cydbwysydd llwyth gyda "ceisiwch eto yn nes ymlaen".
Mae'r nodwedd drom yn ychwanegu 20 ms o CPU ac un ymholiad cronfa ddata fesul cais. I ffwrdd = diraddio graslon.
Yn ailddefnyddio'r adeilad da diwethaf ar fflyd newydd (5 munud, wedi'i filio ddwywaith), yna'n newid y traffig. Mae pwyso eto yn ailgychwyn y paratoi; heb adeilad gwael yn fyw, dim ond arian y mae'n ei gostio.
Dangosyddion
Cyfradd gwallau
0.00%
normal
Hwyrni p99
342ms
normal
Cyllideb gwallau ar ôl (30 diwrnod)
50.0%
normal
Defnydd y fflyd
52%
normal
Cyfradd llosgi (1 h)
0.0 ×
Ceisiadau
1125 req/s
Achosion yn gwasanaethu
10
Achosion yn cychwyn
0
Cyfradd trawiadau'r storfa dros dro
77 %
Defnydd y gronfa ddata
19 %
Traffig wedi'i ollwng
0 %
Cost y fflyd
4.00 $/h
Cost hyd yma
0.00 $
Oedran cymedrig atebion wedi'u storio
30 s
Traffig ar yr adeilad gwael
0 %
Argymhellion ar gael
100 %
Tuedd
Senarios argyfwng
Lefel 1 · Rhyddhad gwael
Mae adeilad newydd yn mynd allan am 09:10. Mae'r mis eisoes wedi bod yn arw: dim ond 20 % o'r gyllideb gwallau sydd ar ôl. Funudau ar ôl y defnyddio mae'r dudalen cyfradd llosgi yn tanio. Amddiffynnwch y gyllideb.
Cyllideb gwallau ar ôl ar y diwedd ≥ 18.5 %
Cyfradd gwallau gyfartalog ≤ 0.65 % ar ôl y defnyddio
Cost y fflyd ≤ $9.50
Lefel 2 · Torf sydyn
Mae dolen i'r gwasanaeth yn lledaenu'n gyflym a disgwylir ymchwydd traffig rywbryd y bore yma — does neb yn gwybod pryd, na pha mor fawr. Heddiw mae angen 8 munud i gychwyn gweinyddion (instances) newydd. Pan ddaw, cadwch wallau a hwyrni'n isel heb losgi arian ar gapasiti segur.
Cyfradd gwallau gyfartalog ≤ 0.2 %
Hwyrni p99 cyfartalog ≤ 400 ms
Traffig cyfartalog wedi'i ollwng ≤ 5 %
Cyfanswm cost ≤ $21
Argymhellion ar gael ≥ 85 % o'r amser
Lefel 3 · Storfa oer
Ar frig canol dydd mae sgript cynnal a chadw yn fflysio'r storfa gyfan. Mae pob cais bellach yn mynd i'r gronfa ddata, a ddimensiynwyd ar gyfer y gyfradd trawiadau arferol o 85 %. Adferwch y gwasanaeth heb orlwytho'r gronfa ddata.
Cyfradd gwallau gyfartalog ≤ 1.5 %
Defnydd y gronfa ddata byth uwchlaw 90 % ar ôl y funud gyntaf
Oedran cymedrig atebion wedi'u storio ≤ 90 s ar gyfartaledd
Cyfanswm cost ≤ $9
Argymhellion ar gael ≥ 80 % o'r amser
Traffig cyfartalog wedi'i ollwng ≤ 5 %
Sail — y model y tu ôl i'r rhifau
Pob perthynas a ddefnyddir gan yr efelychydd, gyda'i ffynhonnell. Mae cysonion a farciwyd fel rhagdybiaethau yn galibriadau darluniadol.
Mae ceisiadau'n dilyn cromlin ddyddiol ynghyd ag aflonyddwch; mae'r cyfrif y funud ar hap (Poisson, brasamcan normal) gydag ychydig o fyrstio.
λ(t) = base × (1 + 0.25·sin(2π(t + clock − 6 h)/24 h)) × surge(t), clock = time of day at the start (peak at 12:00); count/min ≈ N(60λ, √(60λ)) × (1 + N(0, 0.02))[6]Rhagdybiaeth: mae nifer y gweithwyr, amserau gwasanaeth, capasiti'r gronfa ddata, maint y storfa dros dro, cyflymder ail-lenwi, prisiau a chyfradd gwallau'r adeilad gwael yn werthoedd darluniadol ar gyfer gwasanaeth gwe canolig.
Erlang C: y tebygolrwydd bod yn rhaid i gais aros am weithiwr rhydd mewn system M/M/N.
N = instances × 16 workers, a = λ·S; C(a, N) = B / (1 − (a/N)(1 − B)), B = Erlang B[3][6]
Cynffon amser aros: mae'r siawns o aros yn hirach na t yn gostwng yn esbonyddol; mae ceisiadau sy'n dal i aros ar yr amserlen 2 s yn methu. Y tu hwnt i'r capasiti, mae'r gormodedd yn methu.
Hwyrni p99 o gwantiliau amser gwasanaeth ac amser aros.
p99 ≈ S·ln 100 + ln(C/0.01)/(N/S − λ) (service + waiting quantile, an approximation)[3][6]Brasamcan: nid yw adio meintiau gwasanaeth ac aros yn union p99 eu swm (gall fod ychydig yn uchel neu'n isel); caiff y ciw ei drin fel un cyson o fewn pob munud oherwydd bod ceisiadau'n cymryd milieiliadau.
Cyfraith Little: gweithwyr prysur = cyfradd cyrraedd × amser mewn gwasanaeth.
Storfa dros dro TTL: gyda cheisiadau ar hap, mae pob methiant yn dechrau cyfnod TTL pan fydd ceisiadau'n taro.
hit = warm × rT/(1 + rT), r = λ / 20,000 objects; mean age of a cached answer ≈ T/2[5]
Mae methiannau'r storfa dros dro yn llwytho'r gronfa ddata; mae ei hoedi ciwio yn arafu pob cais sy'n ei chyffwrdd, sydd hefyd yn llenwi gweithwyr yr ap.
DB load = λ·q·(1 − hit); query time = 5 ms/(1 − ρ_db) (≤ 250 ms); S = S_app + (1 − hit)·q·query time[6]Rhagdybiaeth: mae nifer y gweithwyr, amserau gwasanaeth, capasiti'r gronfa ddata, maint y storfa dros dro, cyflymder ail-lenwi, prisiau a chyfradd gwallau'r adeilad gwael yn werthoedd darluniadol ar gyfer gwasanaeth gwe canolig.
SLO a chyllideb gwallau: mae'r gyfradd llosgi yn dweud sawl gwaith yn gyflymach nag a ganiateir y mae'r gyllideb yn cael ei gwario.
budget = 1 − SLO = 0.1 %; burn = error rate / 0.1 %; Δbudget per min = burn / 43,200; burn (1 h) = mean error rate over the last 60 min / 0.1 % (window pre-filled with the opening minute)[1][2]
Awtoraddiwr sy'n tracio targed gydag oedi cychwyn ac oeri.
desired = ⌈serving × utilization / target⌉ (utilization saturates at 100 %); new instances serve after the boot delay[6]Rhagdybiaeth: mae nifer y gweithwyr, amserau gwasanaeth, capasiti'r gronfa ddata, maint y storfa dros dro, cyflymder ail-lenwi, prisiau a chyfradd gwallau'r adeilad gwael yn werthoedd darluniadol ar gyfer gwasanaeth gwe canolig.
Cysonion gweithredu eraill a ddefnyddir gan y model.
16 workers/instance · app time 50 ms (+20 ms and +1 query with the feature on) · 2 queries/request · DB 4,000 queries/s · 20,000 hot objects · cache refill τ = 30 min (slower while the DB is saturated) · warm-up job +12 %/min for 6 min, +600 queries/s · timeout 2 s · 30 % low-priority traffic · bad build +5 % errors, ×1.25 CPU · rollback 5 min · $0.40 per instance-hour · scale-in by ≤ 20 % of the fleet after 10 quiet minutes · up to 40 instancesRhagdybiaeth: mae nifer y gweithwyr, amserau gwasanaeth, capasiti'r gronfa ddata, maint y storfa dros dro, cyflymder ail-lenwi, prisiau a chyfradd gwallau'r adeilad gwael yn werthoedd darluniadol ar gyfer gwasanaeth gwe canolig.
Ar hap: cynhyrchydd mulberry32 â hedyn; dosbarthiadau a ddefnyddir — unffurf, esbonyddol (CDF gwrthdro), normal (Box–Muller), Poisson (Knuth). Dangosir yr hedyn a gellir ei rannu.
M. Harchol-Balter — Performance Modeling and Design of Computer Systems: Queueing Theory in Action (M/M/k, server farms, capacity provisioning) — Cambridge University Press, 2013