Quick start: Kiểm tra và kích hoạt zRAM trong 5 phút
Sau 2 năm dùng Fedora làm máy code chính, mình cực kỳ ưng tốc độ cập nhật package, nhưng có một thứ mình luôn phải “xắn tay” tinh chỉnh ngay là zRAM. Khác với kiểu dùng phân vùng Swap cứng trên ổ đĩa cũ kỹ, Fedora đã mặc định dùng zRAM từ bản 33. Để check xem máy bạn đã bật nó chưa, hãy mở terminal và gõ:
zramctl
Nếu thấy dòng /dev/zram0 xuất hiện cùng thuật toán nén (thường là lzo-rle), máy bạn đã chạy zRAM. Nếu chưa thấy gì? Cài đặt nó chỉ mất vài giây:
sudo dnf install zram-generator -y
Tiếp theo, tạo file cấu hình cơ bản tại đường dẫn /etc/systemd/zram-generator.conf:
sudo nano /etc/systemd/zram-generator.conf
Dán nội dung này vào file:
[zram0]
zram-size = ram / 2
compression-algorithm = zstd
Lưu lại và chạy lệnh sau để thay đổi có hiệu lực ngay:
sudo systemctl daemon-reload
sudo systemctl start /dev/zram0
Bây giờ, hãy thử gõ swapon --show. Bạn sẽ thấy một phân vùng swap mới sẵn sàng gánh vác công việc nặng nhọc cho hệ thống.
zRAM là gì và tại sao nó là “vũ khí bí mật” của Fedora?
Chắc hẳn bạn đã từng phát điên vì máy đứng hình khi mở cùng lúc 50 tab Chrome và vài container Docker. Đó là lúc RAM thật đã cạn, hệ thống phải đẩy dữ liệu sang Swap trên ổ cứng. Ngay cả với SSD NVMe xịn nhất, tốc độ ghi đĩa vẫn hít khói nếu so với RAM vật lý. Đây là lúc zRAM thể hiện giá trị.
Thay vì ghi dữ liệu ra ổ đĩa, zRAM tạo một phân vùng nén ngay trong RAM. Hãy tưởng tượng 1GB dữ liệu thô khi đẩy vào zRAM với thuật toán zstd sẽ chỉ còn chiếm khoảng 300MB. Bạn đang dùng chính sức mạnh CPU để “ảo thuật” ra thêm dung lượng bộ nhớ.
Điểm ăn tiền của Fedora là nó ưu tiên dùng zRAM trước khi đụng tới Swap trên đĩa. Thao tác nén và giải nén trên các CPU đời mới diễn ra cực nhanh, giúp máy phản hồi tức thì thay vì phải chờ ổ cứng “rặn” từng bit dữ liệu.
Cấu hình nâng cao: Tinh chỉnh zram-generator như dân chuyên
Mặc định của Fedora khá an toàn, nhưng với anh em Developer, chúng ta cần nhiều hơn thế. Hãy can thiệp sâu vào zram-generator.conf để tối ưu theo cấu hình phần cứng thực tế.
1. Kiểm soát dung lượng tối đa
Với máy 8GB RAM, công thức zram-size = ram / 2 sẽ tạo ra 4GB swap nén. Tuy nhiên, nếu bạn không muốn zRAM lấn át quá nhiều bộ nhớ thực, hãy dùng hàm min để giới hạn:
[zram0]
zram-size = min(ram / 2, 4096)
compression-algorithm = zstd
Cấu hình này đảm bảo zRAM lấy tối đa 50% RAM nhưng không bao giờ vượt ngưỡng 4GB (4096MB). Cách này giúp hệ thống luôn giữ lại đủ RAM trống cho các tác vụ ưu tiên cao.
2. Chọn thuật toán nén phù hợp
Lựa chọn thuật toán nén sẽ ảnh hưởng trực tiếp đến độ mượt của máy:
- lzo-rle: Mặc định trên Fedora. Tốc độ cực nhanh, nhẹ máy nhưng tỉ lệ nén thấp. Phù hợp cho máy đời cũ hoặc CPU 2-4 nhân.
- zstd: Lựa chọn số 1 của mình. Tỉ lệ nén cực cao (có thể nén dữ liệu xuống còn 1/4). Dù tốn thêm chút CPU nhưng với chip đa nhân hiện nay, sự đánh đổi này hoàn toàn xứng đáng.
- lz4: Trung hòa giữa tốc độ và dung lượng, một lựa chọn an toàn cho hầu hết người dùng.
So sánh thực tế: Có cần giữ lại Swap vật lý không?
Nhiều anh em thắc mắc: “Có zRAM rồi thì xóa luôn Swap trên ổ cứng được không?”. Câu trả lời là: **Cần, nhưng đừng để nó quá lớn**.
zRAM xử lý cực tốt dữ liệu “nóng” đang làm việc. Nhưng nếu bạn dùng tính năng Hibernate (ngủ đông máy), bạn bắt buộc phải có phân vùng Swap vật lý lớn hơn dung lượng RAM thực. Nếu không dùng Hibernate, chỉ cần để Swap vật lý khoảng 2GB làm “lưới bảo hiểm” cuối cùng khi cả RAM thật và zRAM đều quá tải.
Để kiểm tra độ ưu tiên của các loại swap, hãy gõ swapon --show. Bạn sẽ thấy zRAM có chỉ số PRIO cao hơn (ví dụ: 100), trong khi swap trên đĩa thường là số âm (-2). Hệ thống sẽ luôn lấp đầy zRAM trước khi tính đến chuyện ghi vào ổ cứng.
Kinh nghiệm thực tế khi dùng Fedora làm máy làm việc
Mình thường xuyên chạy VS Code kèm vài project React và Docker đồng thời. Nếu không có zRAM, con Thinkpad của mình chắc chắn sẽ “đứng bóng” từ lâu. Dưới đây là 2 bí kíp nhỏ bạn nên áp dụng:
Tăng chỉ số Swappiness
Swappiness quyết định kernel sẽ ưu tiên dùng swap khi nào. Với zRAM, mình thích đẩy giá trị này lên tối đa để tận dụng khả năng nén thay vì để kernel tự giải phóng cache:
sudo sysctl vm.swappiness=100
Để lưu vĩnh viễn, hãy tạo file /etc/sysctl.d/99-zram.conf và thêm dòng vm.swappiness=100 vào bên trong.
Theo dõi hiệu quả bằng zramctl
Đừng chỉ cài rồi để đó. Thỉnh thoảng hãy gõ zramctl để xem cột DATA (dữ liệu thực) và COMPR (dữ liệu sau nén). Nếu tỉ lệ đạt mức 3:1 hay 4:1, bạn đã thành công trong việc tiết kiệm vài GB RAM quý giá.
NAME ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram0 zstd 4G 1.2G 300M 350M 16 [SWAP]
Nhìn vào ví dụ trên: 1.2GB dữ liệu thực tế chỉ tốn vỏn vẹn 350MB bộ nhớ thực. Một con số quá ấn tượng cho một thủ thuật phần mềm!
Lời kết
Tối ưu zRAM trên Fedora không hề khó nhưng mang lại thay đổi rõ rệt cho trải nghiệm hàng ngày. Với các bạn Junior Developer, việc nắm vững cách quản lý bộ nhớ này sẽ giúp bạn tự tin hơn khi xử lý các project nặng trên máy cá nhân. Hãy thử nghiệm các thuật toán khác nhau để tìm ra “điểm ngọt” cho cấu hình máy của bạn. Nếu gặp khó khăn khi chỉnh file zram-generator, cứ để lại comment phía dưới, mình sẽ hỗ trợ ngay.

