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

200 luồng 'ngốn' 1612MB mà RAM thật chỉ 1,6MB: ngăn xếp 8MB chỉ là lời hứa suông

200 luồng chiếm 1612 MB VSZ nhưng chỉ 1,6 MB RAM thật (8KB mỗi luồng) — ngăn xếp 8MB là ảo, cấp lười. Guard page dưới mỗi stack biến tràn thành SIGSEGV chính xác, độ sâu đệ quy tỉ lệ thẳng cỡ stack (8MB ≈ 7939 tầng). Và -O2 suýt biến đệ quy vô hạn thành vòng lặp, đo nhầm hoàn toàn.

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

Bốn luồng đếm tới 8 triệu, ra 2,1 triệu mà không một lỗi nào: 73% dữ liệu bốc hơi trong im lặng

Bốn luồng cùng tăng một biến chung 8 triệu lần, đo ra 2.144.770 — mất 73% mà không một lỗi nào báo. Thêm mutex thì đúng nhưng chậm 87 lần. __thread cho mỗi luồng bản riêng: vừa đúng vừa nhanh, truy cập gần ngang biến thường. Bản nhanh nhất lại là bản sai — 'nhanh' mà chưa 'đúng' là con số nguy hiểm nhất.

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

Thêm luồng thứ hai, thông lượng sụp 8 lần: và cả sau khi chia khóa nó vẫn tụt vì một kẻ giết vô hình

Thêm luồng vào một khóa chung làm thông lượng SỤP: 226 xuống 27 triệu ops/giây khi lên 2 luồng — mở rộng âm. Chia nhỏ khóa vẫn tụt sau 2 luồng vì chia sẻ giả (các biến chung dòng cache). Chỉ khi đệm mỗi luồng ra riêng một dòng cache mới scale gấp 6. 'Song song' cần độc lập cả về khóa lẫn dòng cache.

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

Atomic nhanh gấp 2,6 lần mutex ở một luồng — rồi thua chính mutex ở tám luồng: 'lock-free' không phải phép màu

Atomic nhanh gấp 2,6 lần mutex ở một luồng (626 so với 239) — nhưng ở tám luồng atomic (25) còn thua mutex (40), và vòng CAS tự viết tụt xuống 7,5 triệu ops/giây với mười triệu lần thử lại. Lock-free không phải contention-free cũng không phải scalable; cách scale thật là giảm chia sẻ.

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

Tôi ghim 8 luồng vào một lõi 'cho gọn' — và vứt mất 4/5 sức mạnh của máy

Tám luồng bận không ghim: nhân tự trải ra tám lõi khác nhau, 854.562 đơn vị công việc. Ghim hết vào một lõi tưởng 'kiểm soát tốt' nhưng chỉ được 165.906 — bằng 1/5, chín lõi ngồi không. Affinity tốt cho một luồng nóng nhưng phản tác dụng khi gom nhiều luồng song song.

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

'Too many open files' khi RAM còn thừa 8GB: cái lỗi ai cũng chẩn đoán nhầm là hết tài nguyên

'Too many open files' không phải hết RAM hay đầy đĩa — nó là RLIMIT_NOFILE, một giới hạn chính sách mỗi tiến trình. Tôi hạ giới hạn xuống 20, mở được đúng 17 fd rồi đụng EMFILE (errno 24) trong khi RAM còn dư gần 8GB. Một lỗi 'hết X' khi X còn thừa nghĩa là bạn đụng chính sách, không phải bức tường vật lý.