Mạng 03/09/2026 9 phút

Round-robin chia 60 request thành 20/20/20 'hoàn hảo' — và đó chính là cái bẫy

Round-robin chia đều tăm tắp theo lượt, kể cả nhét 20 request cho backend chậm nhất. Least-connections thì chỉ đưa nó 2 request, dồn phần còn lại cho hai máy rảnh. 'Đều' không phải 'cân bằng' — và cái khác biệt đó quyết định 1/N người dùng của bạn có phải chờ máy ốm hay không. Đo thật bằng nginx.

Mạng 03/09/2026 9 phút

Ai cũng bảo protobuf nhỏ hơn JSON cả chục lần — tôi đo ra chỉ 2 lần, và cái lợi thật nằm chỗ khác

Cùng một bản ghi, protobuf nhỏ hơn JSON ~2 lần và mã hóa nhanh hơn 7 lần — không phải 'chục lần' như đồn, và gzip còn làm phình một payload nhỏ. Cái lợi thật của gRPC hóa ra không phải vài byte, mà là CPU ở quy mô lớn, hợp đồng lược đồ, và bốn kiểu gọi streaming. Đo thật.

Mạng 03/09/2026 11 phút

Giữ 3000 WebSocket mở tốn 45,8 KB mỗi cái — nhưng socket TCP trần chỉ 0,1 KB: đắt gấp 400 lần vì đâu?

Một khung WebSocket gửi 'hi' chỉ tốn 8 byte trên dây. Nhưng giữ 3000 kết nối mở ngốn 45,8 KB mỗi cái trên máy chủ Python — trong khi 3000 socket TCP trần chỉ 0,1 KB. Tôi định đổ tội cho bộ đệm nhân, rồi một phép đo đối chứng lật ngược: cái đắt là runtime, không phải kết nối. Đo thật.

Mạng 03/09/2026 10 phút

Mạng 100 Mbps mà web vẫn ì ạch: tôi suýt viết 'băng thông không quan trọng' — rồi một file 5MB bác ngay

Trang 40 tài nguyên nhỏ: qua 10 mbit là thời gian chững ~520ms, nhưng RTT kéo nó tăng tuyến tính. Một file 5MB thì ngược hẳn — gấp đôi băng thông là gần nửa thời gian. Cái nào là nút thắt hoàn toàn tùy hình dạng tải, và một câu châm ngôn nghe rất kêu chỉ đúng một nửa. Đo thật bằng netem.