ทุกอุตสาหกรรม › ปฏิบัติการไอที — วิศวกรรมความน่าเชื่อถือของไซต์ 🖥️ ปฏิบัติการไอที — วิศวกรรมความน่าเชื่อถือของไซต์ โมเดลสด คุณเป็นผู้เฝ้าระบบ (on call) ของเว็บเซอร์วิส: ตัวกระจายโหลดหน้ากลุ่มอินสแตนซ์ แคชหน้าฐานข้อมูล และเป้าหมายความพร้อมใช้งาน 99.9 % ทุกนาทีแบบจำลองคำนวณความหน่วงจากคิว การหมดเวลา แคชฮิต และโหลดฐานข้อมูลจากสูตรในตำรา — และต้นทุนของการตัดสินใจของคุณ
สิ่งที่คุณจะได้เรียนรู้ ทำไมความหน่วงจึงพุ่งใกล้การใช้งานเต็ม (Erlang C) และทำไมการปรับขนาดอัตโนมัติที่มีหน่วงเวลาบูตจึงมาช้าเสมอ SLO งบข้อผิดพลาด และการแจ้งเตือนอัตราการเผาตัดสินว่าเมื่อไรควรย้อนกลับอย่างไร แคชเย็นกลายเป็นฐานข้อมูลล่มได้อย่างไร และเครื่องมือใดซื้อเวลาได้: การตัดทราฟฟิก การลดระดับบริการ การอุ่นแคช เครื่องจำลองสดต้องใช้ JavaScript ทุกอย่างด้านล่าง — โมเดล สูตร และแหล่งที่มา — อ่านได้โดยไม่ต้องใช้
เครื่องจำลอง
คำขอ 1125 · อัตราข้อผิดพลาด 0.00% · ความหน่วง p99 342 ms · อินสแตนซ์ที่ให้บริการ 10 (+0) · อัตราแคชฮิต 77% · การใช้งานฐานข้อมูล 19% · งบข้อผิดพลาดที่เหลือ (30 วัน) 50.0% ⇉ 1125 คำขอ/วินาที ▶ ▶ ▶ ▶ ▶ ▶ ▶ ▶ ▶ ▶ · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ▶ 10 · ⚙ 0 · 52% · p99 342 ms การใช้งานกลุ่มเซิร์ฟเวอร์ 52% อัตราแคชฮิต 77% การใช้งานฐานข้อมูล 19% ⚠ 0.00% · 🔥 0.0× 50% $ 4.00/h · Σ $0.00 ▶ อินสแตนซ์ให้บริการ⚙ อินสแตนซ์กำลังบูต! อินสแตนซ์บนบิลด์เสีย· ช่องว่าง• คำขอที่เข้ามาตัวควบคุม รันงานอุ่นแคช โหลดคีย์ที่ใช้บ่อยเป็นเวลา 6 นาที (+12 % ของแคชต่อนาที) โดยแลกกับคำสั่งฐานข้อมูลเพิ่ม 600 ครั้ง/วินาที
ย้อนกลับรีลีส ปรับใช้บิลด์ที่ดีล่าสุดอีกครั้งบนกลุ่มเซิร์ฟเวอร์ใหม่ (5 นาที คิดค่าใช้จ่ายสองเท่า) แล้วจึงสลับทราฟฟิก การกดซ้ำจะเริ่มการเตรียมใหม่ หากไม่มีบิลด์ที่เสียใช้งานอยู่ก็มีแต่เสียเงิน
ตัวชี้วัด งบข้อผิดพลาดที่เหลือ (30 วัน)
50.0 %
ปกติ
การใช้งานกลุ่มเซิร์ฟเวอร์
52 %
ปกติ
อัตราการเผา (1 ชม.) 0.0 × คำขอ 1125 req/s อินสแตนซ์ที่ให้บริการ 10 อินสแตนซ์ที่กำลังบูต 0 อัตราแคชฮิต 77 % การใช้งานฐานข้อมูล 19 % ทราฟฟิกที่ตัด 0 % ต้นทุนกลุ่มเซิร์ฟเวอร์ 4.00 $/h ต้นทุนสะสม 0.00 $ อายุเฉลี่ยของคำตอบในแคช 30 s ทราฟฟิกบนบิลด์เสีย 0 % ระบบแนะนำพร้อมใช้งาน 100 %
แนวโน้ม ตัวชี้วัดของกราฟ อัตราข้อผิดพลาด ความหน่วง p99 งบข้อผิดพลาดที่เหลือ (30 วัน) การใช้งานกลุ่มเซิร์ฟเวอร์ อัตราการเผา (1 ชม.) คำขอ อินสแตนซ์ที่ให้บริการ อินสแตนซ์ที่กำลังบูต อัตราแคชฮิต การใช้งานฐานข้อมูล ทราฟฟิกที่ตัด ต้นทุนกลุ่มเซิร์ฟเวอร์ ต้นทุนสะสม อายุเฉลี่ยของคำตอบในแคช ทราฟฟิกบนบิลด์เสีย ระบบแนะนำพร้อมใช้งาน อัตราข้อผิดพลาด: — % 20.00 0.00 สถานการณ์วิกฤต ระดับ 1 · รีลีสที่เสีย บิลด์ใหม่ออกเวลา 09:10 เดือนนี้ลำบากอยู่แล้ว: เหลืองบข้อผิดพลาดเพียง 20 % ไม่กี่นาทีหลังดีพลอย การแจ้งเตือนอัตราการเผาดัง ปกป้องงบ
งบข้อผิดพลาดที่เหลือเมื่อสิ้นสุด ≥ 18.5 % อัตราข้อผิดพลาดเฉลี่ย ≤ 0.65 % หลังดีพลอย ต้นทุนกลุ่มเซิร์ฟเวอร์ ≤ $9.50 ระดับ 2 · ฝูงชนพุ่งกะทันหัน ลิงก์ไปยังบริการกำลังแพร่ออกไปอย่างรวดเร็ว และคาดว่าทราฟฟิกจะพุ่งในช่วงเช้านี้สักเวลา — ไม่มีใครรู้ว่าเมื่อไรหรือใหญ่แค่ไหน อินสแตนซ์ใหม่วันนี้ใช้เวลาบูต 8 นาที เมื่อมันมาถึง ให้รักษาข้อผิดพลาดและความหน่วงให้ต่ำโดยไม่เผาเงินไปกับกำลังที่ว่างเปล่า
อัตราข้อผิดพลาดเฉลี่ย ≤ 0.2 % ความหน่วง p99 เฉลี่ย ≤ 400 ms ทราฟฟิกที่ตัดเฉลี่ย ≤ 5 % ต้นทุนรวม ≤ $21 ระบบแนะนำพร้อมใช้งาน ≥ 85 % ของเวลา ระดับ 3 · แคชเย็น ที่จุดสูงสุดตอนเที่ยง สคริปต์บำรุงรักษาล้างแคชทั้งหมด ทุกคำขอจึงไปที่ฐานข้อมูล ซึ่งออกแบบขนาดไว้สำหรับอัตราฮิตปกติ 85 % นำบริการกลับมาโดยไม่ให้ฐานข้อมูลโอเวอร์โหลด
อัตราข้อผิดพลาดเฉลี่ย ≤ 1.5 % การใช้งานฐานข้อมูลไม่เกิน 90 % เลยหลังนาทีแรก อายุเฉลี่ยของคำตอบในแคช ≤ 90 s โดยเฉลี่ย ต้นทุนรวม ≤ $9 ระบบแนะนำพร้อมใช้งาน ≥ 80 % ของเวลา ทราฟฟิกที่ตัดเฉลี่ย ≤ 5 % พื้นฐาน — โมเดลเบื้องหลังตัวเลข ทุกความสัมพันธ์ที่เครื่องจำลองใช้ พร้อมแหล่งที่มา ค่าคงที่ที่ระบุว่าเป็นสมมติฐานคือการปรับเทียบตัวอย่าง
ค่าคงที่การดำเนินงานอื่น ๆ ที่แบบจำลองใช้ 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 instancesสมมติฐาน: จำนวนเวิร์กเกอร์ เวลาให้บริการ ความจุฐานข้อมูล ขนาดแคช ความเร็วเติม ราคา และอัตราข้อผิดพลาดของบิลด์เสียเป็นค่าตัวอย่างสำหรับเว็บเซอร์วิสขนาดกลาง ความสุ่ม: ตัวสร้าง mulberry32 แบบมีซีด การแจกแจงที่ใช้ — สม่ำเสมอ เอ็กซ์โพเนนเชียล (CDF ผกผัน) ปกติ (Box–Muller) ปัวซง (Knuth) ซีดแสดงให้เห็นและแชร์ได้
แหล่งที่มา Site Reliability Engineering — Ch. 3 Embracing Risk (error budgets), Ch. 4 Service Level Objectives — Beyer, Jones, Petoff, Murphy (eds.), O'Reilly, 2016The 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, 2018Teletraffic Engineering Handbook — Erlang C formula; waiting-time distribution for M/M/n, FCFS — ITU-D Study Group 2 Question 16/2 (V. B. Iversen), 2005J. D. C. Little — A Proof for the Queuing Formula: L = λW — Operations Research 9(3):383–387, 1961J. Jung, A. W. Berger, H. Balakrishnan — Modeling TTL-based Internet Caches — IEEE INFOCOM 2003, 2003M. Harchol-Balter — Performance Modeling and Design of Computer Systems: Queueing Theory in Action (M/M/k, server farms, capacity provisioning) — Cambridge University Press, 2013 โมเดลเพื่อการศึกษา — ไม่ใช่สำหรับการตัดสินใจเชิงปฏิบัติการ ไซต์จริงปรับเทียบค่าคงที่ทุกตัวให้ตรงกับอุปกรณ์และข้อมูลของตนเอง