Họ đang đo gì
Bạn có tư duy thống kê về hiệu năng không, hay chỉ nhìn một con số trên dashboard.
Trả lời ngắn~30 giây
Phân phối độ trễ luôn lệch phải: phần lớn request nhanh, một số ít rất chậm. Trung bình bị kéo về phía đám đông nhanh nên nó không mô tả trải nghiệm tệ nhất — mà chính trải nghiệm tệ mới là thứ khiến người dùng bỏ đi. p99 nghĩa là 99% request nhanh hơn con số này. Nghe như “chỉ 1% bị ảnh hưởng”, nhưng nếu một trang gọi 40 API thì xác suất ít nhất một lời gọi rơi vào đuôi là khoảng 33% — nghĩa là một phần ba lượt tải trang chạm phải p99.
Giải thích sâu
Phép tính đó đáng làm rõ vì nó thay đổi cách ưu tiên: xác suất KHÔNG chạm đuôi là 0,99⁴⁰ ≈ 0,67. Nghĩa là “p99 chỉ ảnh hưởng 1% người dùng” là sai ở mọi hệ thống có nhiều lời gọi phụ thuộc nhau, và ở kiến trúc microservices thì còn tệ hơn vì mỗi lời gọi lại gọi tiếp. Đây là lý do Google gọi hiện tượng này là tail at scale.
Một cái bẫy kỹ thuật nữa: percentile KHÔNG cộng được. Bạn không thể lấy p99 của mười máy chủ rồi tính trung bình để ra p99 toàn hệ thống — con số đó không có ý nghĩa nào. Muốn đúng thì phải gộp histogram rồi mới tính percentile, và đó là lý do các hệ đo hiện đại lưu histogram thay vì lưu sẵn percentile.
Về việc chọn theo dõi cái gì, mình dùng p50 để biết trải nghiệm điển hình, p95 hoặc p99 để đặt SLO, và luôn nhìn kèm thông lượng. Một p99 đẹp lúc 3 giờ sáng không nói gì; p99 lúc cao điểm mới là con số phải bảo vệ. Và nếu p99 đột nhiên TỐT lên trong lúc có sự cố thì thường là do những request chậm đang bị lỗi và biến mất khỏi phép đo — một cái bẫy diễn giải rất hay gặp.
Câu hỏi tiếp theo họ sẽ hỏi
?SLO nên đặt thế nào?
Từ điều người dùng thật sự cần, không từ điều bạn đang đạt được. Rồi ngân sách lỗi là phần bù: SLO 99,9% cho phép khoảng 43 phút không đạt mỗi tháng. Ngân sách đó là công cụ đàm phán giữa tốc độ phát hành và độ ổn định, và đó mới là mục đích của nó.
Trả lời thế này là mất điểm
- Báo cáo hiệu năng bằng một con số trung bình duy nhất. Nó đúng về mặt số học và vô dụng về mặt vận hành.
- Tính trung bình các percentile. Đây là lỗi thống kê phổ biến nhất trong dashboard hiệu năng.