Page cache
Đọc lạnh từ đĩa 93ms, đọc ấm từ cache 18ms — nhanh gấp 5 lần. Nhưng đo hớ: ghi file bằng dd đã nạp sẵn nó vào cache, nên 'lần đầu' của tôi vốn đã ấm. Phải drop_caches. Đo thật.
Đọc lạnh từ đĩa 93ms, đọc ấm từ cache 18ms — nhanh gấp 5 lần. Nhưng đo hớ: ghi file bằng dd đã nạp sẵn nó vào cache, nên 'lần đầu' của tôi vốn đã ấm. Phải drop_caches. Đo thật.
write() không fsync đạt ~984.000 ghi/giây — nhưng đó là tốc độ cache, dữ liệu chưa bền. Thêm fsync ép xuống đĩa: sụp còn ~2.578 ghi/giây (388us mỗi lần). Gộp fsync cứu lại tốc độ. Đo thật.
Ghi 300MB không fsync: Dirty nằm nguyên 300MB suốt 30 giây rồi mới về 0 — nhân đẩy trang bẩn xuống đĩa đúng mốc dirty_expire. Cửa sổ 30 giây đó là lý do phải fsync. Đo thật bằng /proc/meminfo.
Đọc tuần tự 6701 MB/s, ngẫu nhiên 295 MB/s. Nhưng đọc tuần tự mà TẮT readahead chỉ 134 MB/s — chậm 50 lần, dù không hề seek. Tuần tự nhanh vì readahead, không phải vì SSD không seek. Đo thật.
Cấp phát 2GB tức thì, VmSize +2GB nhưng VmRSS +0. Và đọc hết 2GB đó vẫn +0 RAM — vì đọc bộ nhớ mới chạm zero-page chung; chỉ GHI mới cấp RAM thật. Đo thật bằng /proc/self/status.
malloc 512 GB trên một máy 8 GB vẫn báo THÀNH CÔNG — vì overcommit chỉ hứa, chưa giao RAM. Sự thật lộ khi chạm trang: OOM killer giết ở giới hạn thật. Đo thật.