Một luồng TCP
Bắt gói một lần GET: 10 gói, mà chỉ 2 gói chở HTTP — 8 gói còn lại là bắt tay, ACK và đóng kết nối. Và một byte ma của SYN/FIN suýt làm tôi đọc sai bản bắt. Đo thật bằng tcpdump.
Bắt gói một lần GET: 10 gói, mà chỉ 2 gói chở HTTP — 8 gói còn lại là bắt tay, ACK và đóng kết nối. Và một byte ma của SYN/FIN suýt làm tôi đọc sai bản bắt. Đo thật bằng tcpdump.
Đọc vòng đời một kết nối TCP qua ss: LISTEN, ESTABLISHED, TIME-WAIT, CLOSE-WAIT. Hạ tcp_fin_timeout không rút được TIME-WAIT — nó chỉnh một trạng thái khác. Đo thật.
Thử lại ngay dội 2000 request vào một server chỉ lỗi 2 giây. Và exponential backoff KHÔNG jitter vẫn khiến 50 client thử lại thành từng đợt ~50 gói đồng bộ — jitter mới dập được. Đo thật.
Bốn chặng gọi tuần tự tốn 261ms; song song hoá còn 63ms. 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. Bài cuối của sê-ri. Đo thật.
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ì nó KHÔNG bẫy, nó chạy trong vDSO. Đo thật bằng C và strace.
fork() không sao chép dữ liệu nhờ copy-on-write (fork 1GB 1,6ms so với memcpy 490ms), nhưng nó vẫn tốn O(bộ nhớ) vì phải sao chép bảng trang: 33us ở 1MB lên 1613us ở 1GB. Đo thật.