Upplýsingatæknirekstur — áreiðanleiki þjónustu Lifandi líkan

Þú ert á bakvakt fyrir vefþjónustu: álagsjafnari fyrir framan flota tilvika, skyndiminni fyrir framan gagnagrunn og 99,9 % aðgengismarkmið. Á hverri mínútu reiknar líkanið biðtíma, tímamörk, skyndiminnishittni og álag á gagnagrunn úr kennslubókarformúlum — og hvað ákvarðanir þínar kosta.

Það sem þú lærir

Hermir

Tími 0 mín.
Beiðnir 1125 · Villutíðni 0,00% · p99-biðtími 342 ms · Tilvik í þjónustu 10 (+0) · Hittni skyndiminnis 77% · Nýting gagnagrunns 19% · Villukvóti eftir (30 dagar) 50,0%⇉1125 beiðn./s▶▶▶▶▶▶▶▶▶▶······························▶ 10 · ⚙ 0 · 52% · p99 342 msNýting flota 52%Hittni skyndiminnis 77%Nýting gagnagrunns 19%⚠ 0,00% · 🔥 0,0×50%$ 4,00/h · Σ $0,00
  • Tilvik í þjónustu
  • Tilvik að ræsast
  • Tilvik á slæmu smíðinni
  • Laus rauf
  • Komandi beiðnir

Stýringar

Gólf fyrir flotann. Ef það er hækkað ræsast tilvik strax — þau þurfa samt ræsitöfina áður en þau þjóna.

Markmiðsrakning á nýtingu; engin ný útskölun meðan tilvik eru enn að ræsast. Slökkt = nákvæmlega lágmarkið.

Lægra = meira svigrúm og meiri kostnaður. Mæld nýting getur ekki farið yfir 100 %, svo mettaður floti vex aðeins skref fyrir skref.

Lengri TTL = fleiri hittni, en svör geta verið eldri (meðalaldur ≈ TTL/2).

Hleður heita lykla í 6 mínútur (+12 % af skyndiminninu á mínútu) gegn 600 aukafyrirspurnum á sekúndu í gagnagrunn.

Hlutfall af 30 % lágforgangsumferðinni (forsókn, runuvinnsla, skriðlar) sem er hafnað í álagsjafnara með „reyndu síðar“.

Þungi eiginleikinn bætir við 20 ms af CPU og einni gagnagrunnsfyrirspurn á beiðni. Slökkt = mjúk afturför (graceful degradation).

Setur síðustu góðu útgáfuna aftur í notkun á nýjum vélaflota (5 mín, rukkað tvisvar) og færir síðan umferðina. Að ýta aftur endurræsir undirbúninginn; ef engin slæm útgáfa er í gangi kostar það aðeins peninga.

Vísar

Villutíðni
0,00%
eðlilegt
p99-biðtími
342ms
eðlilegt
Villukvóti eftir (30 dagar)
50,0%
eðlilegt
Nýting flota
52%
eðlilegt
Brunahraði (1 klst.)0,0 ×
Beiðnir1125 req/s
Tilvik í þjónustu10
Tilvik að ræsast0
Hittni skyndiminnis77 %
Nýting gagnagrunns19 %
Umferð felld niður0 %
Kostnaður flota4,00 $/h
Kostnaður hingað til0,00 $
Meðalaldur svara í skyndiminni30 s
Umferð á slæmu smíðinni0 %
Meðmæli tiltæk100 %

Þróun

Villutíðni: — %20,000,00

Neyðarsviðsmyndir

Stig 1 · Slæm útgáfa

Ný smíði fer út klukkan 09:10. Mánuðurinn hefur þegar verið erfiður: aðeins 20 % af villukvótanum eru eftir. Mínútum eftir uppsetningu glymur brunahraðaviðvörunin. Verndaðu kvótann.

  • Villukvóti eftir í lokin ≥ 18,5 %
  • Meðalvillutíðni ≤ 0,65 % eftir uppsetningu
  • Kostnaður flota ≤ $9,50

Stig 2 · Skyndilegur mannfjöldi

Tengill á þjónustuna dreifist hratt og umferðarbylgju er vænst einhvern tímann í morgun — enginn veit hvenær eða hve stór hún verður. Ný tilvik þurfa 8 mínútur til að ræsast í dag. Þegar hún kemur skaltu halda villum og seinkun niðri án þess að brenna peningum á ónotaða afkastagetu.

  • Meðalvillutíðni ≤ 0,2 %
  • Meðal p99-biðtími ≤ 400 ms
  • Meðalumferð felld niður ≤ 5 %
  • Heildarkostnaður ≤ $21
  • Meðmæli tiltæk ≥ 85 % tímans

Stig 3 · Kalt skyndiminni

Á hádegistoppnum hreinsar viðhaldsskrifta allt skyndiminnið. Hver beiðni fer nú í gagnagrunninn, sem var stærðaður fyrir venjulega 85 % hittni. Komdu þjónustunni aftur í lag án þess að ofhlaða gagnagrunninn.

  • Meðalvillutíðni ≤ 1,5 %
  • Nýting gagnagrunns aldrei yfir 90 % eftir fyrstu mínútu
  • Meðalaldur svara í skyndiminni ≤ 90 s að meðaltali
  • Heildarkostnaður ≤ $9
  • Meðmæli tiltæk ≥ 80 % tímans
  • Meðalumferð felld niður ≤ 5 %

Grunnur — líkanið á bak við tölurnar

Hvert samband sem hermirinn notar, með heimild. Fastar merktir sem forsendur eru táknrænar kvarðanir.

Beiðnir fylgja dægurferli auk truflana; fjöldi á mínútu er tilviljunarkenndur (Poisson, normalnálgun) með örlitlum sveiflum.
λ(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]Forsenda: fjöldi vinnsluferla, þjónustutímar, afkastageta gagnagrunns, stærð skyndiminnis, áfyllingarhraði, verð og villutíðni slæmu smíðinnar eru dæmigerð gildi fyrir meðalstóra vefþjónustu.
Erlang C: líkurnar á því að beiðni þurfi að bíða eftir lausu vinnsluferli í M/M/N kerfi.
N = instances × 16 workers, a = λ·S; C(a, N) = B / (1 − (a/N)(1 − B)), B = Erlang B[3][6]
Hali biðtíma: líkurnar á að bíða lengur en t falla veldisvísislega; beiðnir sem enn bíða við 2 sekúndna tímamörkin misheppnast. Umfram afkastagetu misheppnast umframið.
P(W > t) = C·e^(−(N/S − λ)·t); timeouts = P(W > 2 s); a ≥ N ⇒ failed share = 1 − N/a[3]
p99-biðtími úr kvantílum þjónustutíma og biðtíma.
p99 ≈ S·ln 100 + ln(C/0.01)/(N/S − λ) (service + waiting quantile, an approximation)[3][6]Nálgun: að leggja saman þjónustu- og biðtímabrot er ekki nákvæmt p99 af summu þeirra (það getur verið aðeins of hátt eða lágt); biðröðin er meðhöndluð sem stöðug innan hverrar mínútu því beiðnir taka millisekúndur.
Lögmál Littles: uppteknir vinnsluferlar = komuhraði × tími í þjónustu.
busy workers L = λ·S ⇒ utilization = λ·S / N[4]
TTL-skyndiminni: með tilviljunarkenndum beiðnum hefur hver ósókn upphaf TTL-tímabils þar sem beiðnir hitta.
hit = warm × rT/(1 + rT), r = λ / 20,000 objects; mean age of a cached answer ≈ T/2[5]
Skyndiminnisósóknir hlaða gagnagrunninn; biðtími hans hægir á hverri beiðni sem snertir hann, sem fyllir líka vinnsluferla forritsins.
DB load = λ·q·(1 − hit); query time = 5 ms/(1 − ρ_db) (≤ 250 ms); S = S_app + (1 − hit)·q·query time[6]Forsenda: fjöldi vinnsluferla, þjónustutímar, afkastageta gagnagrunns, stærð skyndiminnis, áfyllingarhraði, verð og villutíðni slæmu smíðinnar eru dæmigerð gildi fyrir meðalstóra vefþjónustu.
SLO og villukvóti: brunahraðinn segir hversu mörgum sinnum hraðar en leyfilegt er kvótinn er notaður.
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]
Sjálfvirkur stigstærðari með markmiðsrakningu, ræsitöf og kælitíma.
desired = ⌈serving × utilization / target⌉ (utilization saturates at 100 %); new instances serve after the boot delay[6]Forsenda: fjöldi vinnsluferla, þjónustutímar, afkastageta gagnagrunns, stærð skyndiminnis, áfyllingarhraði, verð og villutíðni slæmu smíðinnar eru dæmigerð gildi fyrir meðalstóra vefþjónustu.
Aðrir rekstrarfastar sem líkanið notar.
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 instancesForsenda: fjöldi vinnsluferla, þjónustutímar, afkastageta gagnagrunns, stærð skyndiminnis, áfyllingarhraði, verð og villutíðni slæmu smíðinnar eru dæmigerð gildi fyrir meðalstóra vefþjónustu.

Handahóf: seeded mulberry32 rafall; dreifingar sem notaðar eru — jöfn, veldis (andhverf CDF), normal (Box–Muller), Poisson (Knuth). Fræið er sýnt og hægt að deila því.

Heimildir

  1. Site Reliability Engineering — Ch. 3 Embracing Risk (error budgets), Ch. 4 Service Level Objectives — Beyer, Jones, Petoff, Murphy (eds.), O'Reilly, 2016
  2. The Site Reliability Workbook — Ch. 5 Alerting on SLOs (burn rate; 14.4× over 1 h = 2 % of a 30-day budget) — Beyer, Murphy, Rensin, Kawahara, Thorne (eds.), O'Reilly, 2018
  3. Teletraffic Engineering Handbook — Erlang C formula; waiting-time distribution for M/M/n, FCFS — ITU-D Study Group 2 Question 16/2 (V. B. Iversen), 2005
  4. J. D. C. Little — A Proof for the Queuing Formula: L = λW — Operations Research 9(3):383–387, 1961
  5. J. Jung, A. W. Berger, H. Balakrishnan — Modeling TTL-based Internet Caches — IEEE INFOCOM 2003, 2003
  6. 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

Hverjir vinna við þetta

Fræðslulíkan — ekki til notkunar við ákvarðanir í rekstri. Raunverulegar aðstöður stilla alla fasta eftir eigin búnaði og gögnum.