Lập trình 22/09/2026 10 phút

Tail latency WebSocket dưới 10.000 kết nối đo thật: 50 client không đọc làm hub không deadline đứng hẳn, deadline 1 giây đẩy p99 lên 2 giây, cấp phát 1 KB mỗi client đẩy p99 từ 45 lên 115 ms dù GC chỉ dừng 2 ms, GOGC 400 làm p99.9 tệ hơn

Server Go fan-out 100 vòng 1 KB tới 10.000 client, 1.000.000 mẫu độ trễ mỗi lần chạy, đo p50, p99, p99.9, max trước và sau từng cách sửa. Nền: p99.9 59 ms. 50 client không đọc với shard không write deadline: hub đứng ở vòng 22, 1.169 mẫu trễ 20 giây. Thêm deadline 1 giây: p99 2.016 ms, max 5.039 ms. Kênh riêng từng client: p99.9 50 ms. Cấp phát bản sao 1 KB cho từng client cộng rác nền 100 MB/s: GC dừng tổng 2,3 ms nhưng p99 115 ms, p99.9 148 ms. GOGC 400: p99 71 nhưng p99.9 251 ms và RSS 870 MB. Bỏ cấp phát trong đường nóng: p99.9 49 ms. GOMAXPROCS 2: p50 34,9 thay vì 20,4 ms.