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

Đường gigabit mà tải file bên kia địa cầu vẫn ì ạch vài MB/s — thủ phạm không phải băng thông

Với cửa sổ TCP cố định, thông lượng tỉ lệ nghịch với RTT: RTT gấp đôi thì tốc độ còn một nửa, bất kể băng thông rộng bao nhiêu. Nới cửa sổ gỡ được trần đó (nhanh gấp 40 lần), nhưng RTT vẫn phạt bạn qua slow-start. Đo thật bằng netem, kèm cái bẫy đo-quá-ngắn.

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

Vì sao một luồng tải đơn không lấp nổi đường 10 Gbit — và con số vàng để gỡ nút thắt

Ở RTT cố định, thông lượng tăng tuyến tính theo cửa sổ TCP cho tới khi đụng trần băng thông rồi đứng lại. Điểm gãy đúng bằng tích băng thông–độ trễ (BDP). Dưới BDP là phí băng thông, trên BDP là phí RAM — điểm ngọt nằm ngay tại đó. Đo thật, kèm bẫy benchmark trên veth trần giấu mất nửa sự thật.

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

99% gói vẫn tới nơi, mà đường ống chỉ chạy 3% công suất — cú sập TCP mà ai cũng nên biết

Chỉ 1% mất gói làm sập thông lượng CUBIC khoảng 30 lần, để 97% băng thông nằm không — vì giao thức đọc mọi gói rơi thành 'đường tắc'. Đường cong sập theo căn bậc hai của tỉ lệ mất gói, nên vài phần trăm đầu tiên hại nặng nhất. Đo thật bằng netem, kèm vì sao BBR ra đời.

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

Người nhận không đọc một byte nào, tôi vẫn send() được 1,5 MB — rồi mới hiểu vì sao write() đôi khi đứng khựng

send() nuốt được khoảng 1,5 lần tổng hai đệm socket rồi mới chặn, dù người nhận đứng hình không đọc byte nào. Đó không phải lỗi mà là kiểm soát luồng của TCP tự ghìm người gửi theo người nhận. Đo thật, kèm cú bẫy kernel âm thầm nhân đôi đệm.

DevOps 01/09/2026 8 phút

Hai cụm Kubernetes dựng theo mặc định dùng chung một dải IP 10.244.0.0/16 nên không tài nào định tuyến cho nhau — và mỗi control plane trống tốn 536 MB RAM

'Chia thành nhiều cụm' nghe như một quyết định kiến trúc. Đo trên hai cụm thật chạy cạnh nhau: mỗi control plane trống tốn 536 MB RAM cố định (nhân với số cụm), và cả hai cụm mặc định của kubeadm dùng chung 10.244.0.0/16 nên pod cụm này không gọi được pod cụm kia — mạng không định tuyến, DNS không biết nhau. Cấp dải IP khác nhau ngay từ khi tạo, vì đổi sau là dựng lại cả cụm.

DevOps 01/09/2026 8 phút

Sidecar của service mesh chỉ thêm 0,19 ms và 5 MB RAM — nhưng một pod ngoài mesh vẫn gọi thẳng vào được không mã hoá; cài mesh không tự nó chặn gì

Service mesh hứa mTLS, quan sát và điều khiển lưu lượng mà không sửa mã. Cài Linkerd lên cụm thật rồi đo: sidecar thêm ~0,19 ms (2,4 lần tương đối nhưng dưới 5% với dịch vụ thật) và chỉ 3–5 MB RAM. mTLS bật sẵn không cần khai gì. Nhưng điểm quan trọng nhất: mTLS là CƠ HỘI, không phải bắt buộc — pod ngoài mesh gọi vào vẫn chạy bình thường bằng văn bản rõ, cho tới khi bạn thêm chính sách cưỡng chế.