L = λ × W
Số phương trình hữu ích nhất trong việc lập kế hoạch dung lượng
Đối với bất kỳ hàng đợi ổn định nào, không quan trọng cấu trúc bên trong của nó: L = λ × W, trong đó:
- L = số trung bình các mục trong hệ thống (đang tiến hành hoặc chờ đợi)
- λ (lambda) = tốc độ trung bình của việc đến (mục mỗi đơn vị thời gian)
- W = thời gian trung bình mỗi mục ở trong hệ thống
Đọc hình học: vạch λ trên một trục và W trên trục khác. Sản phẩm L là diện tích của hình chữ nhật họ tạo ra. Lập kế hoạch dung lượng sống bên trong hình chữ nhật này.
Tại sao nó quan trọng: bất kỳ hai trong số ba số lượng nào cũng xác định số thứ ba. Đo lưu lượng và độ trễ, bạn biết độ chiếm dụng. Đo độ chiếm dụng và lưu lượng, bạn biết độ trễ. Luật này rất bền vững: nó áp dụng cho yêu cầu web, bàn ở nhà hàng, hàng đợi siêu thị và đường ống CPU mà không cần thay đổi.
Ba ví dụ cụ thể:
- Một dịch vụ web xử lý 200 req/s với độ trễ trung bình 50 ms (0.05 s). L = 200 × 0.05 = 10 đang tiến hành.
- Một quán cà phê phục vụ 60 khách/giờ với thời gian ở lại trung bình 15 phút (0.25 giờ). L = 60 × 0.25 = 15 khách trong nhà.
- Một nhóm backend xử lý 1500 req/s với độ trễ trung bình 200 ms (0.2 s). L = 1500 × 0.2 = 300 đang tiến hành.
Nhận xét về kích cỡ: số lượng công nhân / số lượng luồng / số lượng kết nối của một tầng phải ít nhất là L để giữ được. Đặt ít hơn có nghĩa là hàng đợi tăng lên.
Tại sao Độ Trễ Nổ Ra Past 80% Sử Dụng
Số Đường Cực Đáng Biết Trong Hoạt Động
Đồ thị sử dụng trên trục hoành (0% đến 100%) & thời gian chờ trung bình trên trục tung. Hình dạng là một trong những đường cong quan trọng nhất trong việc lập kế hoạch dung lượng.
Mô hình hàng đợi M/M/1: cho một hệ thống có sự đến ngẫu nhiên (Poisson) & thời gian phục vụ ngẫu nhiên (exponential), thời gian chờ trung bình:
W_q = ρ / (μ × (1 - ρ))
với ρ là sử dụng (0 đến 1) & μ là tỷ lệ phục vụ.
Hình dạng đường cong:
- Tại ρ = 0.5 (50% sử dụng), thời gian chờ là nhỏ (1 thời gian phục vụ).
- Tại ρ = 0.7 (70% sử dụng), thời gian chờ là ~2.3 thời gian phục vụ.
- Tại ρ = 0.8 (80% sử dụng), thời gian chờ là ~4 thời gian phục vụ.
- Tại ρ = 0.9 (90% sử dụng), thời gian chờ là ~9 thời gian phục vụ.
- Tại ρ = 0.95 (95% sử dụng), thời gian chờ là ~19 thời gian phục vụ.
- Tại ρ = 1.0 (100% sử dụng), thời gian chờ là vô hạn.
Gối đầu: quanh 80% sử dụng, đường cong cong lại mạnh mẽ. Dưới gối đầu, dung lượng thoải mái; trên gối đầu, latency tăng nhanh hơn sử dụng.
Đọc thực tế: mục tiêu 70% sử dụng cho trạng thái ổn định, không bao giờ 100%. 30% 'không gian' không lãng phí; nó là giá của latency có giới hạn.
Cỡ Hóa Lại Qua Gối Đầu
Hai kịch bản:
Kịch bản A: 10 bản sao đang chạy với 60% CPU. Latency p99 = 100 ms.
Kịch bản B: cùng đội ngũ đang chạy với 90% CPU do tăng trưởng lưu lượng. p99 = 600 ms.
Cùng đội ngũ, cùng mã, chỉ có sử dụng thay đổi.
Kích Thước & Bắt Động Cùng Lúc
Tổng hợp
Bạn có thể áp dụng Luật Little như một hình chữ nhật, đọc đường cong chờ và gối đầu của nó, và kết nối cả hai với quyết định về khả năng.
Áp dụng cả hai.
Một tầng backend xử lý 2,000 req/s với độ trễ trung bình 50 ms mỗi replica có khả năng 80 req/s tại 70% CPU. Tỷ lệ nở 2x; bạn muốn sống sót qua 3 sự cố replica đồng thời.
Ghi chú Đồng hành
Ghi chú Đồng hành
Lesson Geometry-of này tái cấu trúc bài học Stateless Horizontal Scaling thành hình học số.
Bài đồng hành tiếp theo, geometry_of_ingress_egress_separation, tái cấu trúc sự phân chia ranh giới mạng như một đồ thị song song với một đỉnh cắt mà sự phân chia loại bỏ.
Làm tốt.