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

Unix socket nhanh gấp mười TCP loopback? Tôi đo ra chỉ 1,6 lần — và cái bẫy Nagle tôi giăng sẵn không sập

Cùng một máy, Unix socket nhanh hơn TCP loopback thật — nhưng chỉ ~1,6 lần độ trễ (18,8 so 30,2 µs), không phải chục lần như tôi tưởng. Và cú treo Nagle 40ms tôi chủ động giăng bẫy để tái hiện lại chẳng thèm xuất hiện. Hai trực giác, hai lần trượt. Đo thật trong container.

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

Hạ tcp_fin_timeout để 'dọn' TIME-WAIT — lời khuyên nhan nhản trên diễn đàn mà tôi đo ra là sai

Đọc vòng đời một kết nối TCP qua ss: LISTEN, ESTABLISHED, TIME-WAIT, CLOSE-WAIT. Tôi hạ tcp_fin_timeout để rút TIME-WAIT như lời khuyên phổ biến — nó chẳng nhúc nhích, vì nó chỉnh một trạng thái KHÁC. Và TIME-WAIT với CLOSE-WAIT: hai bệnh cùng chữ 'wait' nhưng chẩn đoán ngược nhau. Đo thật.

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

Exponential backoff mà ai cũng khoe chỉ làm nửa việc — 50 client vẫn dập server thành từng đợt 50 gói đồng bộ

Thử lại ngay dội 2000 request vào một server chỉ lỗi 2 giây, đủ giết nó. Tôi tưởng exponential backoff là đủ. Nhưng backoff KHÔNG jitter vẫn khiến 50 client thử lại thành từng đợt ~50 gói đồng bộ ở giây 1, 2, 4, 8 — jitter mới tãi chúng ra mượt. Đo thật với 50 client.

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

Một chặng chậm thêm 100ms đẩy tổng song song lên đúng 172ms — bằng kẻ chậm nhất, không phải tổng

Bốn chặng gọi tuần tự tốn 261ms; song song hoá còn 63ms. Nhưng một chặng chậm +100ms đẩy tổng song song lên 172ms — bằng chặng chậm nhất, không phải tổng. Và lần đầu đo, mỗi chặng cõng thêm 40ms lạ mà thủ phạm là chính cái máy chủ tôi tự dựng kẹt Nagle. Bài cuối của sê-ri. Đo thật.

Hệ điều hành 03/09/2026 9 phút

clock_gettime nhanh gấp 8 lần getpid dù cả hai là 'syscall' — vì một cái không hề bẫy vào nhân

Một lời gọi hàm thường tốn 0,8ns; một syscall getpid bẫy vào nhân tốn ~113ns (gấp 140 lần). Nhưng clock_gettime chỉ 15ns, và tôi suýt viết 'syscall có thể rất rẻ'. Sự thật: nó không phải syscall — nó chạy trong vDSO, và strace không hề thấy nó. Đo thật bằng C và strace.