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

Chạm hết 2GB vừa cấp phát mà RAM không nhích một byte — vì tôi 'chạm' bằng đọc, không phải ghi

Cấp phát 2GB tức thì: VmSize +2GB nhưng VmRSS +0. Tôi chạm hết 2GB đó để cấp RAM, mà RSS vẫn đứng im — vì đọc bộ nhớ mới chỉ trỏ vào một trang zero chung, không cấp RAM riêng. Chỉ GHI mới biến ảo thành thật. Đo thật bằng /proc/self/status.

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

malloc 512 GB trên máy 8 GB vẫn báo THÀNH CÔNG — rồi tôi ghi 500 MB và bị bắn gục

malloc 512 GB trên một máy 7,75 GB RAM vẫn trả về thành công tức thì, vì overcommit chỉ HỨA chứ chưa giao RAM. Tôi suýt tin 'cấp phát xong là có RAM'. Sự thật lộ khi chạm trang: OOM killer giết đúng ở giới hạn thật, mã thoát 137, còn xa lượng đã cấp phát. Đo thật.

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

Trang lớn 2MB nhanh hơn trang 4KB 17% — nhưng lần đầu tôi đo ra bằng nhau, vì 'nền 4KB' âm thầm đã là 2MB

Truy cập ngẫu nhiên trên 1 GB: trang 4KB mất 138 ns/lần, trang lớn 2MB chỉ 114 ns — phần chênh là chi phí lỗi TLB. Nhưng lần đầu hai bản nhanh y hệt, vì THP=always khiến cái 'nền 4KB' của tôi thực ra là trang lớn. Xác minh điều kiện, đừng suy từ ý định. Đo thật.

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

Nạp lại một trang từ swap chậm hơn RAM 58 lần — trong khi mọi bộ đếm khăng khăng 'chẳng có gì xảy ra'

Đọc lại một trang vừa bị đẩy ra swap tốn ~704 ns, chậm hơn đọc RAM 58 lần. Nhưng bộ đếm ru_majflt và pswpin đều báo 0 — chúng nói sự kiện tôi định đo không tồn tại, trong khi VmSwap và đồng hồ nói ngược lại. Tin đồng hồ hơn bộ đếm. Đo thật bằng MADV_PAGEOUT.

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.