Bài viết mới nhất

Tổng 1848 bài
Hệ điều hành 03/09/2026 10 phút

Bộ nhớ chia sẻ đo ra 15 GB/s, checksum báo KHỚP — và cả hai đều đang nói dối tôi

Chuyển 1 GB giữa hai tiến trình: pipe 3,1 GB/s, bộ nhớ chia sẻ ring nhiều đệm 9,8 GB/s (~3×). Nhưng shm một đệm lại chậm hơn pipe, và bản bỏ đồng bộ cho 15 GB/s với checksum 'KHỚP' đã suýt lừa tôi viết kết luận sai — vì đo nhầm đại lượng và một phép kiểm vô dụng. Đo thật.

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

Pipe khai 64 KB, nhưng ghi lố 1 byte mỗi khối thì chỉ nhét được 44 KB — cách đo tự định hình con số

Pipe báo dung lượng 64 KB. Nhưng ghi khối 4097 byte (lố đúng 1 byte qua ranh giới trang) chỉ nhét được 44 KB trước khi write chặn — mất một phần ba. 'Dung lượng pipe' không phải một số duy nhất; chính cỡ khối ghi định hình nó. Và khi đầy, write chặn đúng tới khi bên đọc rút. Đo thật.

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 7 phút

Lỗi trang

Chạm 200MB anon chỉ sinh 102 lỗi trang, không phải 51200 — vì trang lớn THP. Và đọc file lạnh từ đĩa chỉ đếm 1 major fault dù chậm gấp 27 lần cache — vì readahead. Đo thật bằng getrusage.

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

Đồng hồ khai độ phân giải 1 nano giây, nhưng xin ngủ 1 micro giây thì ngủ thật 84 micro giây

clock_getres báo 1 nano giây, tôi tin hệ thống định thời tới nano giây. Nhưng nanosleep(1µs) ngủ thật ~84 micro giây — gấp 84 lần. Có một sàn ~80us do độ trễ đánh thức của bộ lập lịch, không phải độ mịn timer. Độ phân giải tự khai khác độ chính xác thật. Đo thật.