Linux 01/09/2026 10 phút

Đổi trình biên dịch, không đổi một ký tự mã nguồn, băng thông bộ nhớ đo được nhảy 1,68 lần — vì 'băng thông của máy này' không tồn tại

Bài chốt sê-ri Linux: mười con số nền của một máy đủ để ước lượng gần như mọi quyết định hiệu năng, một danh sách kiểm rút từ chính những lần tôi đo sai, và một phát hiện — chạy cùng một file nguồn bằng gcc rồi clang, con số đọc bộ nhớ tuần tự đi mất một phần ba, chứng minh rằng băng thông là của một *cặp* (máy + đoạn mã đọc nó), không phải của riêng cái máy.

DevOps 31/08/2026 8 phút

ulimit thề rằng 'unlimited' — nhưng container của tôi chết đứng ở đúng 19.162 tiến trình, và cái trần đó không nằm ở chỗ ulimit nhìn

Container có hai cái trần vô hình mà nó thường chạm trước cả trần RAM. ulimit -u báo unlimited trong khi trần thật là 19.162 (pids.max của cgroup, đúng 15% threads-max) — công cụ cũ tự tin trả lời sai câu hỏi vì nó chỉ thấy cơ chế RLIMIT có từ trước cgroup. Chạm trần thì lỗi tên là EAGAIN 'thử lại sau' nhưng không bao giờ hết, nên phần lớn thư viện thử lại vô hạn và biến một cái trần cứng thành vòng lặp đốt CPU không báo lỗi. Và lời khuyên 'nhớ tăng ulimit -n' đã hết việc vì trình chạy container đặt sẵn một triệu.