Operasi IT — kebolehpercayaan tapak Model langsung

Anda bertugas siap sedia untuk perkhidmatan web: pengimbang beban di hadapan armada instans, cache di hadapan pangkalan data, dan objektif ketersediaan 99.9 %. Setiap minit model mengira kelewatan barisan gilir, tamat masa, hit cache dan beban pangkalan data daripada formula buku teks — dan kos keputusan anda.

Apa yang akan anda pelajari

Simulator

Masa 0 min
Permintaan 1125 · Kadar ralat 0.00% · Kependaman p99 342 ms · Instans berkhidmat 10 (+0) · Kadar hit cache 77% · Penggunaan pangkalan data 19% · Bajet ralat berbaki (30 hari) 50.0%⇉1125 req/s▶▶▶▶▶▶▶▶▶▶······························▶ 10 · ⚙ 0 · 52% · p99 342 msPenggunaan armada 52%Kadar hit cache 77%Penggunaan pangkalan data 19%⚠ 0.00% · 🔥 0.0×50%$ 4.00/h · Σ $0.00
  • Instans berkhidmat
  • Instans sedang but
  • Instans pada binaan buruk
  • Slot kosong
  • Permintaan masuk

Kawalan

Lantai untuk armada. Menaikkannya melancarkan instans serta-merta — namun ia masih memerlukan lengah but sebelum berkhidmat.

Penjejakan sasaran pada penggunaan; tiada pengembangan baharu selagi instans masih sedang but. Mati = tepat minimum.

Lebih rendah = lebih ruang dan lebih kos. Penggunaan yang diukur tidak boleh melebihi 100 %, jadi armada tepu hanya berkembang langkah demi langkah.

TTL lebih panjang = lebih banyak hit, tetapi jawapan boleh lebih lama (umur purata ≈ TTL/2).

Memuatkan kunci popular selama 6 minit (+12 % cache seminit) dengan harga 600 pertanyaan pangkalan data tambahan/s.

Bahagian 30 % keutamaan rendah (prafetch, kelompok, perangkak) yang ditolak di pengimbang beban dengan “cuba lagi kemudian”.

Ciri berat menambah 20 ms CPU dan satu pertanyaan pangkalan data setiap permintaan. Mati = degradasi anggun.

Menggunakan semula binaan baik terakhir pada armada baharu (5 min, dibilkan dua kali), kemudian menukar trafik. Menekan lagi memulakan semula persediaan; tanpa binaan buruk yang aktif ia hanya membazir wang.

Penunjuk

Kadar ralat
0.00%
normal
Kependaman p99
342ms
normal
Bajet ralat berbaki (30 hari)
50.0%
normal
Penggunaan armada
52%
normal
Kadar bakar (1 h)0.0 ×
Permintaan1125 req/s
Instans berkhidmat10
Instans sedang but0
Kadar hit cache77 %
Penggunaan pangkalan data19 %
Trafik ditolak0 %
Kos armada4.00 $/h
Kos setakat ini0.00 $
Umur purata jawapan dalam cache30 s
Trafik pada binaan buruk0 %
Cadangan tersedia100 %

Aliran

Kadar ralat: — %20.000.00

Senario krisis

Tahap 1 · Keluaran buruk

Binaan baharu dikeluarkan pada 09:10. Bulan ini sudah pun sukar: hanya 20 % bajet ralat berbaki. Beberapa minit selepas penempatan, halaman kadar bakar berbunyi. Lindungi bajet.

  • Bajet ralat berbaki pada akhir ≥ 18.5 %
  • Purata kadar ralat ≤ 0.65 % selepas penempatan
  • Kos armada ≤ $9.50

Tahap 2 · Kesesakan pengunjung mendadak

Pautan ke perkhidmatan merebak dengan cepat dan lonjakan trafik dijangka pada suatu masa pagi ini — tiada siapa tahu bila, atau sebesar mana. Instans baharu memerlukan 8 minit untuk bermula hari ini. Apabila ia tiba, kekalkan ralat dan kependaman rendah tanpa membazir wang pada kapasiti yang tidak digunakan.

  • Purata kadar ralat ≤ 0.2 %
  • Purata kependaman p99 ≤ 400 ms
  • Purata trafik ditolak ≤ 5 %
  • Jumlah kos ≤ $21
  • Cadangan tersedia ≥ 85 % masa

Tahap 3 · Cache sejuk

Pada puncak tengah hari satu skrip penyelenggaraan mengosongkan seluruh cache. Setiap permintaan kini ke pangkalan data, yang direka untuk kadar hit biasa 85 %. Pulihkan perkhidmatan tanpa membebankan pangkalan data.

  • Purata kadar ralat ≤ 1.5 %
  • Penggunaan pangkalan data tidak pernah melebihi 90 % selepas minit pertama
  • Umur purata jawapan dalam cache ≤ 90 s secara purata
  • Jumlah kos ≤ $9
  • Cadangan tersedia ≥ 80 % masa
  • Purata trafik ditolak ≤ 5 %

Asas — model di sebalik angka

Setiap hubungan yang digunakan simulator, beserta sumbernya. Pemalar yang ditandakan sebagai andaian ialah penentukuran ilustrasi.

Permintaan mengikut lengkung harian ditambah gangguan; kiraan seminit adalah rawak (Poisson, anggaran normal) dengan sedikit kemeletupan.
λ(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]Andaian: bilangan pekerja, masa perkhidmatan, kapasiti pangkalan data, saiz cache, kelajuan isi semula, harga dan kadar ralat binaan buruk ialah nilai ilustrasi untuk perkhidmatan web bersaiz sederhana.
Erlang C: kebarangkalian permintaan perlu menunggu pekerja bebas dalam sistem M/M/N.
N = instances × 16 workers, a = λ·S; C(a, N) = B / (1 − (a/N)(1 − B)), B = Erlang B[3][6]
Ekor masa menunggu: peluang menunggu lebih lama daripada t jatuh secara eksponen; permintaan yang masih menunggu pada tamat masa 2 s gagal. Melebihi kapasiti, lebihan itu gagal.
P(W > t) = C·e^(−(N/S − λ)·t); timeouts = P(W > 2 s); a ≥ N ⇒ failed share = 1 − N/a[3]
Kependaman p99 daripada kuantil masa perkhidmatan dan masa menunggu.
p99 ≈ S·ln 100 + ln(C/0.01)/(N/S − λ) (service + waiting quantile, an approximation)[3][6]Anggaran: menambah kuantil perkhidmatan dan penantian bukan p99 tepat bagi jumlahnya (boleh sedikit tinggi atau rendah); baris gilir dianggap mantap dalam setiap minit kerana permintaan mengambil milisaat.
Hukum Little: pekerja sibuk = kadar ketibaan × masa dalam perkhidmatan.
busy workers L = λ·S ⇒ utilization = λ·S / N[4]
Cache TTL: dengan permintaan rawak, setiap miss memulakan tempoh TTL yang mana permintaan mendapat hit.
hit = warm × rT/(1 + rT), r = λ / 20,000 objects; mean age of a cached answer ≈ T/2[5]
Miss cache membebankan pangkalan data; kelewatan barisan gilirnya melambatkan setiap permintaan yang menyentuhnya, yang turut memenuhkan pekerja aplikasi.
DB load = λ·q·(1 − hit); query time = 5 ms/(1 − ρ_db) (≤ 250 ms); S = S_app + (1 − hit)·q·query time[6]Andaian: bilangan pekerja, masa perkhidmatan, kapasiti pangkalan data, saiz cache, kelajuan isi semula, harga dan kadar ralat binaan buruk ialah nilai ilustrasi untuk perkhidmatan web bersaiz sederhana.
SLO dan bajet ralat: kadar bakar menyatakan berapa kali lebih pantas daripada yang dibenarkan bajet itu dibelanjakan.
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]
Penskala automatik penjejakan sasaran dengan lengah but dan tempoh penyejukan.
desired = ⌈serving × utilization / target⌉ (utilization saturates at 100 %); new instances serve after the boot delay[6]Andaian: bilangan pekerja, masa perkhidmatan, kapasiti pangkalan data, saiz cache, kelajuan isi semula, harga dan kadar ralat binaan buruk ialah nilai ilustrasi untuk perkhidmatan web bersaiz sederhana.
Pemalar operasi lain yang digunakan oleh 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 instancesAndaian: bilangan pekerja, masa perkhidmatan, kapasiti pangkalan data, saiz cache, kelajuan isi semula, harga dan kadar ralat binaan buruk ialah nilai ilustrasi untuk perkhidmatan web bersaiz sederhana.

Keberawakan: penjana mulberry32 berbenih; taburan yang digunakan — seragam, eksponen (CDF songsang), normal (Box–Muller), Poisson (Knuth). Benih dipaparkan dan boleh dikongsi.

Sumber

  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

Siapa yang melakukan ini sebagai kerjaya

Model pendidikan — bukan untuk keputusan operasi. Tapak sebenar menentukur setiap pemalar mengikut peralatan dan data mereka sendiri.