Ukusebenza kwe-IT — ukwethembeka kwesayithi Imodeli ephilayo

Usemsebenzini ongalindelekile wesevisi yewebhu: isilinganisi somthwalo phambi kwesikhwama sezimo, i-cache phambi kwesizindalwazi, nenhloso yokutholakala engu-99.9 %. Umzuzu ngamunye imodeli ibala ukubambezeleka kokuhleleka, ama-timeout, ukushaya kwe-cache nomthwalo wesizindalwazi ngamafomula ezincwadi — nokuthi izinqumo zakho zibiza malini.

Okuzofunda

Isilingisi

Isikhathi 0 min
Izicelo 1125 · Izinga lamaphutha 0.00% · Ukubambezeleka kwe-p99 342 ms · Izimo ezisebenzela 10 (+0) · Izinga lokushaya le-cache 77% · Ukusetshenziswa kwesizindalwazi 19% · Uhlahlo-mali lwamaphutha olusele (izinsuku ezingu-30) 50.0%⇉1125 izicelo/s▶▶▶▶▶▶▶▶▶▶······························▶ 10 · ⚙ 0 · 52% · p99 342 msUkusetshenziswa kwesikhwama 52%Izinga lokushaya le-cache 77%Ukusetshenziswa kwesizindalwazi 19%⚠ 0.00% · 🔥 0.0×50%$ 4.00/h · Σ $0.00
  • Isimo sisebenzela
  • Isimo sisaqala
  • Isimo sokwakhiwa okubi
  • Isikhala esikhululekile
  • Izicelo ezingenayo

Izilawuli

Isisekelo sesikhwama. Ukusikhuphula kuqala izimo ngokushesha — zisadinga ukubambezeleka kokuqala ngaphambi kokusebenzela.

Ukulandela inhloso ekusetshenzisweni; akukho ukukala okusha uma izimo zisaqala. Kuvaliwe = ubuncane kanye.

Phansi = isikhala esiningi nezindleko eziningi. Ukusetshenziswa okulinganisiwe akunakudlula u-100 %, ngakho-ke isikhwama esigcwele sikhula ngezinyathelo kuphela.

I-TTL ende = ukushaya okuningi, kodwa izimpendulo zingaba zindala (iminyaka ephakathi ≈ TTL/2).

Ilayisha okhiye abashisayo imizuzu eyi-6 (+12 % ye-cache ngomzuzu) ngenani lemibuzo yesizindalwazi eyengeziwe engu-600/s.

Ingxenye ye-30 % yokubaluleka okuphansi (ukulayisha kuqala, i-batch, ama-crawler) ewiswa ekulinganiseni komthwalo ngo-"zama kamuva".

Isici esinzima sengeza u-20 ms we-CPU kanye nombuzo owodwa wesizindalwazi ngesicelo ngasinye. Kuvaliwe = ukwehla okuhloniphekile.

Kuphinda kuthumele i-build elungile yokugcina kumkhomba omusha (imizuzu emi-5, kubiliswa kabili), bese kushintsha ithrafikhi. Ukucindezela futhi kuqala kabusha ukulungiselela; uma kungekho i-build embi ephilayo kubiza imali kuphela.

Izikhombisi

Izinga lamaphutha
0.00%
kuvamile
Ukubambezeleka kwe-p99
342ms
kuvamile
Uhlahlo-mali lwamaphutha olusele (izinsuku ezingu-30)
50.0%
kuvamile
Ukusetshenziswa kwesikhwama
52%
kuvamile
Izinga lokushisa (1 h)0.0 ×
Izicelo1125 req/s
Izimo ezisebenzela10
Izimo ezisaqala0
Izinga lokushaya le-cache77 %
Ukusetshenziswa kwesizindalwazi19 %
Ithrafikhi elahliwe0 %
Izindleko zesikhwama4.00 $/h
Izindleko kuze kube manje0.00 $
Iminyaka ephakathi yezimpendulo ze-cache30 s
Ithrafikhi ekwakhiweni okubi0 %
Izincomo ziyatholakala100 %

Isitayela

Izinga lamaphutha: — %20.000.00

Izimo eziphuthumayo

Izinga 1 · Ukukhishwa okubi

Ukwakhiwa okusha kuphumela ngo-09:10. Inyanga isivele inzima: u-20 % kuphela wohlahlo-mali lwamaphutha osele. Imizuzu ngemva kokufakwa, ikhasi lezinga lokushisa liyadubula. Vikela uhlahlo-mali.

  • Uhlahlo-mali lwamaphutha olusele ekugcineni ≥ 18.5 %
  • Izinga lamaphutha eliphakathi ≤ 0.65 % ngemva kokufakwa
  • Izindleko zesikhwama ≤ $9.50

Izinga 2 · Isixuku esishesha

Isixhumanisi sesevisi sisakazeka ngokushesha futhi kulindeleke ukunyuka kwethrafikhi ngesinye isikhathi ekuseni namuhla — akekho owaziyo nini, noma ukuthi kukhulu kangakanani. Namuhla ama-instance (amaseva amasha) adinga imizuzu engu-8 ukuqala. Uma efika, gcina amaphutha nokulibaza kuphansi ngaphandle kokushisa imali ekumthamo ongasebenzi.

  • Izinga lamaphutha eliphakathi ≤ 0.2 %
  • Ukubambezeleka kwe-p99 okuphakathi ≤ 400 ms
  • Ithrafikhi ephakathi elahliwe ≤ 5 %
  • Izindleko zizonke ≤ $21
  • Izincomo ziyatholakala ≥ 85 % wesikhathi

Izinga 3 · I-cache ebandayo

Esiqongweni sasemini iskripthi sokulungisa sikhipha yonke i-cache. Isicelo ngasinye manje siya esizindalwazini, esenzelwe izinga elivamile lokushaya elingu-85 %. Buyisela isevisi ngaphandle kokweqisa umthwalo wesizindalwazi.

  • Izinga lamaphutha eliphakathi ≤ 1.5 %
  • Ukusetshenziswa kwesizindalwazi akudluli ku-90 % ngemva komzuzu wokuqala
  • Iminyaka ephakathi yezimpendulo ze-cache ≤ 90 s ngokwesilinganiso
  • Izindleko zizonke ≤ $9
  • Izincomo ziyatholakala ≥ 80 % wesikhathi
  • Ithrafikhi ephakathi elahliwe ≤ 5 %

Isisekelo — imodeli engemuva kwezinombolo

Wonke ubudlelwano isilingisi esibusebenzisayo, nomthombo wabo. Izinto ezihlala zingashintshi ezimakwe njengokuthathelwa yizilinganiso zesibonelo.

Izicelo zilandela ijika lansuku zonke kanye nezinkinga; inani ngomzuzu lingahleliwe (Poisson, isilinganiso esijwayelekile) nokuqhuma kancane.
λ(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]Umcabango: inani labasebenzi, izikhathi zensizakalo, umthamo wesizindalwazi, usayizi we-cache, isivinini sokugcwalisa, amanani nezinga lamaphutha okwakhiwa okubi ayizinani zokufanekisa zesevisi yewebhu ephakathi nendawo.
I-Erlang C: ithuba lokuthi isicelo kufanele silinde umsebenzi ongasebenzi esistimini se-M/M/N.
N = instances × 16 workers, a = λ·S; C(a, N) = B / (1 − (a/N)(1 − B)), B = Erlang B[3][6]
Umsila wesikhathi sokulinda: ithuba lokulinda isikhathi eside kune-t liyehla ngokwe-exponential; izicelo ezisalinda ekupheleni kwe-2 s ziyehluleka. Ngale komthamo, okweqile kuyehluleka.
P(W > t) = C·e^(−(N/S − λ)·t); timeouts = P(W > 2 s); a ≥ N ⇒ failed share = 1 − N/a[3]
Ukubambezeleka kwe-p99 okuvela kuma-quantile esikhathi senkonzo nesikhathi sokulinda.
p99 ≈ S·ln 100 + ln(C/0.01)/(N/S − λ) (service + waiting quantile, an approximation)[3][6]Isilinganiso: ukungeza ama-quantile ensizakalo nokulinda akulona i-p99 eqondile yesamba sawo (lingaba phezulu noma phansi kancane); umugqa uphathwa njengozinzile kuwo wonke umzuzu ngoba izicelo zithatha ama-millisecond.
Umthetho kaLittle: abasebenzi abahlukumezekile = izinga lokufika × isikhathi senkonzo.
busy workers L = λ·S ⇒ utilization = λ·S / N[4]
I-cache ye-TTL: ngezicelo ezingahleliwe, ukuphutha ngakunye kuqala isikhathi se-TTL lapho izicelo zishaya.
hit = warm × rT/(1 + rT), r = λ / 20,000 objects; mean age of a cached answer ≈ T/2[5]
Ukuphutha kwe-cache kulayisha isizindalwazi; ukubambezeleka kwaso kokuhleleka kunciphisa isicelo ngasinye esisithintayo, okugcwalisa nabasebenzi be-app.
DB load = λ·q·(1 − hit); query time = 5 ms/(1 − ρ_db) (≤ 250 ms); S = S_app + (1 − hit)·q·query time[6]Umcabango: inani labasebenzi, izikhathi zensizakalo, umthamo wesizindalwazi, usayizi we-cache, isivinini sokugcwalisa, amanani nezinga lamaphutha okwakhiwa okubi ayizinani zokufanekisa zesevisi yewebhu ephakathi nendawo.
I-SLO nohlahlo-mali lwamaphutha: izinga lokushisa lithi uhlahlo-mali lusetshenziswa kuphindwe kangaki ngokushesha kunokuvunyelwe.
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]
Isikalo esizenzakalelayo esilandela inhloso nokubambezeleka kokuqala nokupholisa.
desired = ⌈serving × utilization / target⌉ (utilization saturates at 100 %); new instances serve after the boot delay[6]Umcabango: inani labasebenzi, izikhathi zensizakalo, umthamo wesizindalwazi, usayizi we-cache, isivinini sokugcwalisa, amanani nezinga lamaphutha okwakhiwa okubi ayizinani zokufanekisa zesevisi yewebhu ephakathi nendawo.
Ezinye izinto ezingashintshi zokusebenza ezisetshenziswa imodeli.
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 instancesUmcabango: inani labasebenzi, izikhathi zensizakalo, umthamo wesizindalwazi, usayizi we-cache, isivinini sokugcwalisa, amanani nezinga lamaphutha okwakhiwa okubi ayizinani zokufanekisa zesevisi yewebhu ephakathi nendawo.

Ukungahleliwe: i-generator ye-mulberry32 enembewu; ukusabalalisa okusetshenzisiwe — uniform, exponential (inverse CDF), normal (Box–Muller), Poisson (Knuth). Imbewu iyabonisa futhi ingabelwana.

Imithombo

  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

Obani abenza lokhu ukuze baziphilise

Imodeli yemfundo — hhayi yezinqumo zokusebenza. Izindawo zangempela zilinganisa yonke into ehlala ingashintshi kumishini nedatha yazo.