Cài đặt zRAM trên Ubuntu 26.04 là một giải pháp giúp tối ưu việc sử dụng bộ nhớ trên VPS, đặc biệt hữu ích đối với những hệ thống có dung lượng RAM hạn chế.
zRAM tạo một block device nằm trong RAM và sử dụng cơ chế nén dữ liệu. Khi được cấu hình làm Swap, dữ liệu được đưa vào zRAM sẽ được nén và lưu trong bộ nhớ thay vì phải ghi trực tiếp xuống ổ đĩa như Swap truyền thống. Điều này có thể giúp giảm hoạt động I/O trên ổ đĩa và cải thiện khả năng phản hồi của hệ thống trong một số tình huống thiếu bộ nhớ.
Ubuntu hỗ trợ cấu hình zRAM thông qua systemd-zram-generator, giúp tự động tạo và quản lý thiết bị zRAM cùng systemd.
Trong bài viết này, HOSTVN sẽ hướng dẫn cách cài đặt và cấu hình zRAM trên Ubuntu 26.04 để sử dụng làm Swap.
Hướng dẫn thực hiện
Bước 1: Kiểm tra RAM và Swap hiện tại
Trước khi cấu hình zRAM, bạn nên kiểm tra dung lượng RAM và Swap hiện tại bằng lệnh:
free -h
Ví dụ:
Tiếp tục kiểm tra các thiết bị Swap đang hoạt động:
swapon --show
Thông tin này giúp bạn xác định hệ thống đã có Swap hay chưa trước khi bổ sung zRAM.
Bước 2: Cập nhật danh sách package
Thực hiện cập nhật danh sách package:
apt update
Lệnh trên tải thông tin mới nhất về các package từ repository đã được cấu hình trên Ubuntu.
Bước 3: Cài đặt systemd-zram-generator
Cài đặt package bằng lệnh:
apt install systemd-zram-generator -y
Sau khi cài đặt, systemd-zram-generator sẽ được sử dụng để tạo và quản lý thiết bị zRAM thông qua systemd.
zram-size = ram * 0.5: cấu hình dung lượng logic của zRAM bằng 50% tổng RAM của VPS.
compression-algorithm = zstd: sử dụng thuật toán Zstandard để nén dữ liệu.
Ví dụ VPS có 4 GB RAM, cấu hình trên sẽ tạo thiết bị zRAM có kích thước logic khoảng:
4 GB × 0.5 = 2 GB zRAM
Lưu ý: 2 GB zRAM không có nghĩa hệ thống ngay lập tức sử dụng thêm 2 GB RAM vật lý. Dung lượng RAM thực tế mà zRAM tiêu thụ phụ thuộc vào lượng dữ liệu được đưa vào và khả năng nén của dữ liệu đó.
Bước 5: Áp dụng cấu hình zRAM
Sau khi tạo file cấu hình, thực hiện:
systemctl daemon-reload
Sau đó khởi động thiết bị zRAM:
systemctl start systemd-zram-setup@zram0.service
Kiểm tra trạng thái:
systemctl status systemd-zram-setup@zram0.service
Nếu dịch vụ hoạt động bình thường, tiếp tục kiểm tra Swap.
Bước 6: Kiểm tra zRAM
Sử dụng:
swapon --show
Nếu cấu hình thành công, bạn sẽ thấy /dev/zram0 xuất hiện trong danh sách Swap, ví dụ:
Điều này cho thấy /dev/zram0 đã được kích hoạt và đang được sử dụng làm Swap.
Bạn cũng có thể kiểm tra bằng:
zramctl
Lệnh này cung cấp thêm thông tin về thiết bị zRAM như kích thước, thuật toán nén và lượng bộ nhớ đang được sử dụng.
Cuối cùng kiểm tra tổng quan RAM và Swap:
free -h
Bước 7: Kiểm tra sau khi Reboot
Để đảm bảo zRAM tiếp tục hoạt động sau khi VPS khởi động lại, thực hiện:
reboot
Sau khi VPS khởi động hoàn tất, kết nối lại qua SSH và kiểm tra:
swapon --show
và:
zramctl
Nếu /dev/zram0 vẫn xuất hiện, zRAM đã được cấu hình thành công.
zRAM hoạt động như thế nào?
Khi được sử dụng làm Swap, zRAM tận dụng một phần RAM để lưu dữ liệu đã được nén.
Có thể hiểu đơn giản:
Swap thông thường:
RAM → Swap trên Disk
zRAM:
RAM → Nén dữ liệu → zRAM trong RAM
Do RAM có tốc độ truy cập nhanh hơn ổ đĩa, zRAM có thể giảm lượng dữ liệu phải đưa xuống Swap trên Disk trong những tình huống phù hợp.
Tuy nhiên, việc nén và giải nén dữ liệu cũng sử dụng tài nguyên CPU. Vì vậy, zRAM không phải là cách tạo thêm RAM vật lý và cũng không thể thay thế việc nâng cấp RAM khi VPS thường xuyên thiếu bộ nhớ.
Một số điều cần lưu ý
zRAM không phải RAM vật lý bổ sung: zRAM sử dụng chính RAM của hệ thống để lưu dữ liệu dưới dạng nén. Hiệu quả đạt được phụ thuộc vào khả năng nén của dữ liệu.
Không nên cấu hình zRAM quá lớn tùy ý: Đối với cấu hình trong bài viết, HOSTVN sử dụng mức 50% RAM (ram * 0.5) làm giá trị tham khảo. Nhu cầu thực tế có thể khác tùy workload.
zRAM sử dụng CPU: Quá trình nén và giải nén dữ liệu cần tài nguyên CPU. VPS có CPU thường xuyên quá tải cần cân nhắc trước khi sử dụng.
Có thể sử dụng cùng Swap trên Disk: zRAM không nhất thiết phải thay thế Swap hiện có. Hệ thống có thể tồn tại đồng thời /dev/zram0 và Swap Partition/Swap File.
Swap Priority ảnh hưởng thứ tự sử dụng: Nếu có nhiều Swap device, Linux sử dụng mức priority để xác định thiết bị được ưu tiên. Có thể kiểm tra bằng swapon --show.
Theo dõi sau khi cấu hình: Nên sử dụng free -h, swapon --show và zramctl để theo dõi mức sử dụng thực tế thay vì chỉ dựa vào kích thước zRAM đã cấu hình.
zRAM không giải quyết triệt để tình trạng thiếu RAM: Nếu VPS liên tục sử dụng hết RAM và Swap, giải pháp phù hợp hơn là kiểm tra tiến trình tiêu thụ bộ nhớ, tối ưu ứng dụng hoặc nâng cấp RAM.
Kết luận
zRAM là một giải pháp hữu ích giúp Ubuntu tận dụng khả năng nén dữ liệu trong RAM để tạo Swap tốc độ cao, qua đó có thể giảm việc truy cập Swap trên ổ đĩa và hỗ trợ hệ thống trong những tình huống áp lực bộ nhớ tăng cao.
Trên Ubuntu 26.04, người dùng có thể cấu hình zRAM thông qua systemd-zram-generator với một file cấu hình đơn giản và dễ quản lý.
HOSTVN khuyến nghị người dùng theo dõi mức sử dụng RAM, Swap và zRAM sau khi cấu hình để đánh giá hiệu quả thực tế. Nếu VPS thường xuyên thiếu bộ nhớ dù đã sử dụng zRAM, cần kiểm tra ứng dụng đang tiêu thụ tài nguyên hoặc cân nhắc nâng cấp dung lượng RAM phù hợp với nhu cầu sử dụng.