Percentiles & tail latency
Tả hiệu năng: percentile, không phải trung bìnhDescribing performance with percentiles
Để tả hiệu năng, Kleppmann bảo đừng tin số trung bình: nó giấu đi những yêu cầu chậm bất thường1. Thay vào đó dùng percentile — p50 (trung vị), p95, p99, p999 — của thời gian phản hồi. Các percentile cao (tail latency) mới phản ánh trải nghiệm tệ nhất mà người dùng gặp, và thường chính những người này lại là khách nhiều dữ liệu, quý nhất. Dean & Barroso mô tả hiện tượng tail latency amplification: khi một yêu cầu phải gọi nhiều dịch vụ song song, chỉ cần một nhánh chậm là cả yêu cầu chậm5.
Đừng chỉ nhìn "trung bình nhanh". Có khi trung bình đẹp mà cứ 100 người thì 1 người phải chờ rất lâu. Người ta đo bằng cách xếp hàng: 99 người trong 100 nhanh hơn mức nào? Nhớ nhé: nhìn người chậm nhất mới biết hệ có thật sự nhanh không.
To describe performance, Kleppmann says don't trust the average: it hides unusually slow requests1. Use percentiles instead — p50 (median), p95, p99, p999 — of response time. The high percentiles (tail latency) reflect the worst experience users actually hit, and those users are often the most valuable, data-heavy ones. Dean & Barroso describe tail latency amplification: when one request fans out to many parallel services, a single slow branch makes the whole request slow5.
Dùng khi nàoĐặt mục tiêu hiệu năng bằng percentile (ví dụ "p99 dưới 200ms"), không bằng trung bình — vì SLA và trải nghiệm sống ở phần đuôi.
Dùng saoĐặt mục tiêu kiểu "99 trong 100 người phải nhanh", chứ không phải "trung bình nhanh".
When to useSet performance targets in percentiles (e.g. "p99 under 200ms"), not averages — because SLAs and experience live in the tail.
Response time vs latency
Kleppmann tách response time (thời gian khách thấy: xử lý + hàng đợi + mạng) khỏi latency (khoảng chờ để được phục vụ)1. Phần lớn biến thiên ở đuôi đến từ hàng đợi, nên giảm tail thường là chuyện quản lý hàng đợi chứ không phải làm CPU nhanh hơn.
Vì sao đuôi khó
Tail amplification khiến hệ càng phân tán, càng nhiều lời gọi song song thì tỉ lệ người dùng chạm phải một nhánh chậm càng cao. Đó là lý do p99/p999 của cả hệ có thể tệ hơn của từng dịch vụ con5.