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

8 luồng tranh một khóa mà 99,86% số lần lock không hề chạm tới kernel — strace phơi bày điều tôi đoán sai

Khóa mutex khi không ai tranh chỉ tốn 5,4 ns, thuần userspace, không syscall. Tôi tưởng tranh chấp sẽ đắt gấp trăm lần vì syscall futex() — nhưng đo ra chỉ chậm ~4 lần, và strace cho thấy 99,86% số lần khóa vẫn không vào kernel. Cái đắt hóa ra không phải syscall. Đo thật.

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

Định đo bộ lập lịch chia lượt CPU, lần đầu chẳng thấy gì — vì tôi quên một biến, và kernel không phải CFS

Mỗi lượt một tiến trình chạy ~3 ms rồi bị đẩy ra, và con số đó cố định dù 2 hay 8 tiến trình tranh CPU. Nhưng lần đầu tôi không thấy chia lượt gì cả (quên ghim CPU), và thứ tôi đang đo hóa ra là EEVDF chứ không phải CFS như tên bài. Đo thật hai cú vấp về bộ lập lịch.

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

Một tiến trình 'nice 10' là ưu tiên cao hay thấp? Câu hỏi bẫy — con số đó một mình chẳng nói lên gì

Hai tiến trình tranh một CPU chia phần theo nice: 0 vs 5 ra 75/25, 0 vs 19 ra 98,5/1,5. Tôi suýt chốt 'nice 10 = chậm'. Rồi đo lại: nice 10 vs 15 chia y hệt 0 vs 5, vì phần chia chỉ phụ thuộc HIỆU nice, không phải giá trị tuyệt đối. Ưu tiên là chuyện tương đối. Đo thật.

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

Ghim tiến trình vào một core để 'giữ cache ấm' — đo ra chẳng nhanh hơn tí nào, vì scheduler đã làm hộ

Ghim CPU vào một nhân nghe hợp lý: cache ấm, không bị dời, chạy nhanh hơn. Nhưng đo ra ghim không hơn tự do — máy rảnh, dưới tải, kể cả khi ép dời liên tục. Vì bộ lập lịch đã tự giữ cache ấm, và phần cứng chia sẻ cache khiến dời rẻ. Tôi đã đo cho một lợi ích đã có sẵn. Đo thật.

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

Cấp container nguyên 1 CPU mà nó vẫn đứng hình 85 ms mỗi 100 ms — vì tôi quên đếm số luồng

docker run --cpus=1 cho container đúng một CPU. Chạy 1 luồng thì mượt. Nhưng 4 luồng đốt chung quota nhanh gấp 4 rồi CẢ BỐN bị đóng băng 85 ms mỗi chu kỳ — dù CPU trung bình không vượt hạn. Đây là CFS throttling, nguồn đuôi trễ số một trong container. Đo thật.

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

Container ở 255/256 MB — sắp chết hay khỏe re? Cùng con số, hai kết cục trái ngược

Thấy container dùng 255 trên 256 MB, tôi hoảng 'sắp OOM'. Nhưng nếu chỗ đầy đó là page cache thì container khỏe re, oom_kill=0; nếu là anon thì exit 137, bị giết ngay. Con số 'đang dùng bao nhiêu' đứng một mình gần như vô dụng — chỉ thành phần mới nói. Đo thật.