Phần lớn dashboard performance nhìn rất đẹp vì người ta nhìn trung bình. Nhưng người dùng không trải nghiệm trung bình. Họ trải nghiệm những request chậm nhất, những spike tệ nhất, và những lúc hệ gần gãy nhất. Đó là lý do percentile và SLA quan trọng.
Table of contents
Open Table of contents
Percentile là gì
Percentile cho mình biết một điểm nằm ở đâu trong phân phối.
- P50: mức giữa của hệ.
- P90: 90 phần trăm request nhanh hơn mức này.
- P95: phần đuôi bắt đầu lộ rõ.
- P99: nơi những trải nghiệm tệ nhất bắt đầu hiện hình.
Nếu P50 đẹp mà P99 xấu, hệ của anh vẫn đang làm khổ một nhóm người dùng thật.
Dùng P nào khi nào
P50
Dùng để hiểu baseline. Nó trả lời câu hỏi: hệ bình thường chạy ra sao?
P90 hoặc P95
Dùng để đặt mục tiêu vận hành hàng ngày. Đây là mức đủ nhạy để phản ánh chất lượng trải nghiệm chung, nhưng chưa quá nhiễu như tail cực sâu.
P99
Dùng để nhìn tail latency thật sự. Đây là nơi:
- timeout lộ ra,
- query xấu lộ ra,
- contention lộ ra,
- dependency chập chờn lộ ra.
Ví dụ dễ hình dung
Mobile app
P50 1.5 giây nghe ổn. Nhưng nếu P99 là 8 giây thì vẫn có một nhóm người dùng đang thấy app chậm kinh khủng.
E-commerce giờ flash sale
P95 checkout dưới 5 giây là chỉ số đáng dùng. P99 15 giây là dấu hiệu hệ bắt đầu đuối ở đuôi.
Game online
P50 ping thấp không cứu được trải nghiệm nếu P99 vọt quá mạnh. Với game, đuôi xấu là mất trận.
SLA là gì
SLA là lời hứa với khách hàng, có đo đếm và có hậu quả nếu vi phạm.
Một SLA tử tế thường có 3 phần:
- cam kết,
- cách đo,
- và penalty nếu fail.
Ví dụ:
- uptime 99.9 phần trăm,
- P95 response time dưới 200ms,
- xử lý sự cố trong 4 giờ.
SLI, SLO và SLA khác nhau thế nào
- SLI: cái anh đo.
- SLO: mục tiêu nội bộ anh muốn đạt.
- SLA: điều anh hứa ra ngoài.
Hướng sạch là:
- SLO phải chặt hơn SLA,
- SLI phải đo được thật,
- dashboard phải đủ chi tiết để biết vì sao fail.
Error budget
Nếu SLO là 99.9 phần trăm, tức là anh có một ngân sách lỗi nhất định. Error budget giúp team cân bằng giữa tốc độ shipping và độ ổn định hệ.
Khi budget gần hết, ưu tiên chuyển từ feature sang reliability.
Sai lầm phổ biến
- nhìn average thay vì percentile,
- đặt SLA mà không có cách đo tử tế,
- dùng P99 nhưng không trace root cause,
- trộn lẫn business metric với system metric mà không phân tầng.
Chốt lại
Percentile không phải để dashboard nhìn ngầu hơn. Nó là cách nhìn đúng về chất lượng trải nghiệm. Còn SLA không phải khẩu hiệu marketing. Nó là cam kết vận hành có thể bị kiểm chứng.