English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

khách
1 / ?
trở lại bài học

L = λ × W

Phương trình hữu ích nhất trong lập kế hoạch năng lực

Đối với bất kỳ hàng đợi ổn định nào, bất kể cấu trúc bên trong của nó: L = λ × W, trong đó:

- L = số lượng mục trung bình trong hệ thống (đang xử lý hoặc đang chờ)

- λ (lambda) = tỷ lệ đến trung bình (số mục trên một đơn vị thời gian)

- W = thời gian trung bình mỗi mục hàng lưu trong hệ thống

Cách đọc hình học: vẽ λ trên một trục & W trên trục kia. Tích L là diện tích của hình chữ nhật mà chúng tạo thành. Việc lập kế hoạch năng lực nằm bên trong hình chữ nhật này.

Tại sao nó quan trọng: bất kỳ hai đại lượng nào trong ba đại lượng đều xác định đại lượng thứ ba. Đo thông lượng & độ trễ, bạn biết độ chiếm dụng. Đo độ chiếm dụng & thông lượng, bạn biết độ trễ. Định luật này vững chắc: nó áp dụng cho các yêu cầu web, bàn trong nhà hàng, hàng chờ tại siêu thị & các đường ống CPU mà không cần sửa đổ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 yêu cầu đang xử lý.

- Một quán cà phê phục vụ 60 khách/giờ với thời gian lưu trú trung bình 15 phút (0,25 giờ). L = 60 × 0,25 = 15 khách bên trong.

- 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 yêu cầu đang xử lý.

Hệ quả về kích thước: số lượng worker / số lượng thread / số lượng kết nối của một tầng phải ít nhất bằng L để theo kịp. Bất kỳ con số nào nhỏ hơn đều có nghĩa là hàng chờ sẽ tăng lên.

Little's Law as area: λ on x, W on y, L = area

Tầng API của bạn xử lý 1.200 req/s với độ trễ trung bình 80 ms. Áp dụng Định luật Little để tính L. Sau đó, hãy giải thích điều gì thay đổi (a) nếu lưu lượng tăng gấp đôi lên 2.400 req/s trong khi độ trễ không đổi, & (b) nếu lưu lượng giữ nguyên ở mức 1.200 nhưng độ trễ tăng lên 160 ms. Kịch bản nào tạo ra L lớn hơn, & điều đó có ý nghĩa gì về mặt vận hành?

Tại sao độ trễ bùng nổ khi vượt quá 80% mức sử dụng

Đường cong quan trọng nhất trong Vận hành

Vẽ mức 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 của đường cong này là một trong những đường cong có ảnh hưởng lớn nhất trong việc lập kế hoạch năng lực.

Mô hình hàng đợi M/M/1: đối với một hệ thống có các lần đến theo phân phối Poisson (ngẫu nhiên) & thời gian phục vụ theo phân phối mũ (ngẫu nhiên), thời gian chờ trung bình là:

W_q = ρ / (μ × (1 - ρ))

trong đó ρ là mức sử dụng (từ 0 đến 1) & μ là tốc độ phục vụ.

Hình dạng của đường cong:

- Tại ρ = 0.5 (50% mức sử dụng), thời gian chờ là nhỏ (bằng 1 thời gian phục vụ).

- Tại ρ = 0,7 (70% tải), thời gian chờ là ~2,3 lần thời gian phục vụ.

- Tại ρ = 0,8 (80% tải), thời gian chờ là ~4 lần thời gian phục vụ.

- Tại ρ = 0,9 (90% tải), thời gian chờ là ~9 lần thời gian phục vụ.

- Tại ρ = 0,95 (95% tải), thời gian chờ là ~19 lần thời gian phục vụ.

- Tại ρ = 1,0 (100% tải), thời gian chờ là vô hạn.

Điểm khuỷu: ở mức sử dụng khoảng 80%, đường cong uốn cong mạnh. Dưới điểm khuỷu, dung lượng thoải mái; trên điểm đó, độ trễ tăng nhanh hơn mức sử dụng.

Cách đọc thực tế: nhắm đến mức sử dụng 70% cho trạng thái ổn định, không bao giờ là 100%. 30% 'dư địa' không phải là lãng phí; đó là cái giá phải trả để có độ trễ có giới hạn.

Đường cong hàng đợi với điểm khuỷu ở mức sử dụng 80%

Định cỡ qua điểm khuỷu

Hai kịch bản:

Kịch bản A: 10 bản sao (replicas) chạy ở mức CPU 60%. Độ trễ p99 = 100 ms.

Kịch bản B: cùng đội máy (fleet) chạy ở mức CPU 90% do lưu lượng tăng. p99 = 600 ms.

Cùng đội máy, cùng mã nguồn, chỉ có mức sử dụng thay đổi.

Hãy giải thích tại sao độ trễ của kịch bản B lại tệ hơn 6 lần dù mức sử dụng chỉ tăng 1,5 lần, bằng cách sử dụng hình dạng hình học của đường cong hàng đợi. Sau đó, hãy đề xuất: ở mức sử dụng nào thì nhóm nên bổ sung năng lực, và tại sao chọn ngưỡng đó thay vì chờ đến khi thực sự vi phạm SLO?

Kích thước & Kích hoạt cùng nhau

Tổng hợp

Bạn giờ có thể áp dụng Định luật Little như một hình chữ nhật, đọc đường cong hàng đợi & điểm khuỷu của nó, & kết nối cả hai với các quyết định về dung lượ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 bản sao (replica) có khả năng xử lý 80 req/s ở mức CPU 70%. Hệ số tăng đột biến (surge factor) là 2x; bạn muốn hệ thống vẫn hoạt động khi 3 bản sao bị lỗi đồng thời.

Tính toán: (1) L sử dụng Định luật Little ở mức cơ sở; (2) số lượng bản sao sử dụng công thức của bài học (đỉnh × hệ số tăng đột biến / mỗi bản sao) + phần dự phòng; (3) tại mức sử dụng quan sát được trên toàn cụm (fleet) thì autoscaling nên được kích hoạt, & biện minh cho ngưỡng này bằng đường cong hàng đợi (queueing curve).

Ghi chú bổ sung

Ghi chú bổ sung

Bài học hình học này diễn giải lại bài học chính Mở rộng ngang không trạng thái dưới dạng hình học định lượng.

Bài học đồng hành tiếp theo, geometry_of_ingress_egress_separation, diễn giải lại sự tách biệt ranh giới mạng dưới dạng đồ thị hai phần với một đỉnh cắt mà sự tách biệt này loại bỏ.

Làm tốt lắm.