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

Chương trình dùng 4 giây CPU trong 1 giây thật: con số '400%' nghe bất khả mà lại đúng

Bốn luồng bận báo %CPU = 400% — dùng 4 giây CPU trong 1 giây tường, nghe bất khả nhưng đúng: thời gian CPU cộng dồn qua các lõi. sleep dùng 0% CPU dù wall trôi 1 giây; I/O nặng sys 0,64 lớn hơn user 0,36. 'Mất bao lâu' là câu hỏi mơ hồ tới khi bạn hỏi 'wall hay CPU'.

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

Working-set nhích từ 80MB lên 150MB, tốc độ rơi 1.500 lần: cái vực thrashing ẩn ngay sau ngưỡng RAM

Working-set 80MB trong 100MB RAM: 0 major fault, 900.000 MB/s. Đẩy lên 150MB (tràn 54MB ra swap): 9.000 major fault mỗi lần quét, còn 600 MB/s — chậm 1.500 lần. Swap không phải 'thêm RAM' mà là vùng tràn chậm gấp nghìn lần, và cái vực đó vô hình cho tới đúng ngưỡng working-set gặp RAM.

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

Ép malloc về một arena chỉ chậm nhẹ, tôi định chốt 'arena không quan trọng' — rồi tắt thêm một thứ, nó sập 24 lần

Ép malloc về một arena chỉ làm 8 luồng chậm từ 556 xuống 434 triệu op/s — tưởng arena vô dụng. Nhưng có một biến ẩn đang gánh thay nó: tắt luôn tcache thì thông lượng sập còn 23. Hai lớp chống tranh khóa, mỗi lớp che hiệu ứng của lớp kia. Đo thật.

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

Luồng tạo nhanh gấp 3 lần tiến trình — rồi một con trỏ NULL kéo sập cả 20 luồng đang làm việc tử tế

Tạo một luồng nhanh gấp 3 lần tạo một tiến trình (15µs so với 46µs) vì luồng chia sẻ không gian địa chỉ thay vì sao chép. Nhưng chính sự chia sẻ đó khiến một luồng segfault giết cả tiến trình, trong khi tiến trình con crash không đụng tới cha. Rẻ đổi lấy mong manh; đắt đổi lấy cô lập.

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

Đoạn code của tôi 'chạy xong -1 giây': cái bẫy đo thời gian mà NTP âm thầm cài sẵn trong mọi hệ thống

Đo thời gian trôi qua bằng giờ tường, tôi nhận về -1,000 giây — một khoảng thời gian âm, đoạn code chạy xong trước khi bắt đầu. Vì giờ tường nhảy lùi khi bị chỉnh (NTP, admin). Đo thời lượng phải dùng đồng hồ đơn điệu — CLOCK_MONOTONIC cho +0,000032s đúng đắn ngay cùng lúc đó.

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

Tôi suýt viết 'tín hiệu chậm gấp 14 lần pipe' — rồi phát hiện thủ phạm là một dòng cấu hình tôi quên

Tín hiệu khứ hồi 17µs, tôi suýt kết 'chậm gấp 14 lần pipe'. Nhưng đo pipe cùng điều kiện cũng 16µs — biến ẩn là ghim lõi khác nhau, không phải tín hiệu. Kèm bẫy gộp tín hiệu: gửi SIGUSR1 100 lần chỉ nhận 1, còn tín hiệu thời gian thực xếp hàng đủ 100.