- ZRAM tạo ra một thiết bị khối nén trong RAM để hoạt động như một không gian hoán đổi siêu nhanh.
- Nó thay thế hoặc bổ sung cho phân vùng Swap truyền thống, loại bỏ các điểm nghẽn của ổ cứng hoặc SSD.
- Nó cho phép các ứng dụng đòi hỏi cao chạy trên phần cứng hạn chế nhờ các thuật toán nén như zstd và lz4.
- Nó tương thích với hầu hết các bản phân phối hiện đại và đã được tích hợp sẵn theo mặc định trong Fedora.
Nếu bạn từng cảm thấy máy tính của mình sắp hết bộ nhớ khi mở quá nhiều tab trình duyệt hoặc khởi chạy một trò chơi nặng, bạn sẽ biết rằng hệ thống thường sử dụng đến tập tin hoán đổi (swap file). Vấn đề là khi Linux bắt đầu ghi dữ liệu vào ổ cứng hoặc SSD để giải phóng RAM, hiệu năng hệ thống sẽ giảm mạnh , tạo ra cảm giác chậm chạp khó chịu mà tất cả chúng ta đều ghét.
Để giải quyết vấn đề này, có một công nghệ đột phá gọi là ZRAM. Thay vì gửi dữ liệu đến ổ cứng, ZRAM tạo ra một vùng nhớ nén trực tiếp trong RAM , cho phép máy tính quản lý nhiều thông tin hơn mà không cần truy cập vào bộ nhớ vật lý. Điều này giúp hiệu năng hoạt động mượt mà hơn đáng kể, đặc biệt là trên các máy tính cũ hoặc có cấu hình yếu hơn.
ZRAM là gì và nó hoạt động như thế nào?
Trước đây được gọi là compcache, về cơ bản nó là một mô-đun nhân hệ điều hành tạo ra một thiết bị khối nén. Hãy tưởng tượng nó như một tệp ZIP được tạo và giải nén trong thời gian thực . Khi hệ thống phát hiện RAM vật lý sắp đầy, thay vì chuyển dữ liệu sang bộ nhớ ảo (swap) trên đĩa, nó sẽ nén dữ liệu và lưu trữ trong không gian ZRAM này.
Ưu điểm chính là tốc độ truy cập RAM nhanh hơn nhiều lần so với bất kỳ ổ cứng nào, ngay cả ổ NVMe mạnh mẽ nhất. Mặc dù việc nén và giải nén dữ liệu yêu cầu CPU phải hoạt động vất vả hơn một chút , nhưng lợi ích tổng thể là rất lớn: bạn tránh được tình trạng nghẽn cổ chai do ổ cứng gây ra và giúp máy tính hoạt động mượt mà hơn nhiều.
So sánh: ZRAM so với bộ nhớ ảo truyền thống
Phương pháp hoán đổi dữ liệu truyền thống là kiểu cũ: sử dụng phân vùng hoặc tập tin trên ổ cứng. Nó đáng tin cậy, nhưng cực kỳ chậm. Mặt khác, ZRAM lưu trữ mọi thứ trong bộ nhớ khả biến. Nếu so sánh hai phương pháp này, ZRAM vượt trội hơn hẳn về tốc độ truy cập, mặc dù tốc độ của nó bị giới hạn bởi dung lượng vật lý có sẵn trong RAM.
Trong các hệ thống có bộ nhớ rất ít, như các máy tính đời cũ, ZRAM là một cứu cánh. Nó thậm chí có thể được kết hợp với phân vùng hoán đổi truyền thống để có được những ưu điểm của cả hai: tốc độ nén cho dữ liệu đang hoạt động và dung lượng đĩa khi thực sự không còn chỗ trống.
Cài đặt và cấu hình trên Debian và Ubuntu
Trong các bản phân phối như Fedora, ZRAM được bật mặc định, nhưng trong hệ sinh thái Debian và Ubuntu, nó thường cần được cài đặt thủ công. Quá trình này khá đơn giản và được thực hiện thông qua terminal. Bước đầu tiên là cài đặt gói cần thiết bằng cách chạy lệnh `sudo apt install zram-tools` , lệnh này sẽ cung cấp các công cụ cơ bản sẵn sàng sử dụng và giúp tối ưu hóa Ubuntu khi nó chạy chậm.
Sau khi cài đặt, phần cốt lõi của cấu hình nằm trong tệp tin /etc/default/zramswapĐây là nơi chúng ta quyết định cách hệ thống hoạt động. Chúng ta có thể chỉnh sửa nó bằng bất kỳ trình soạn thảo văn bản nào, chẳng hạn như Nano hoặc Geany, bằng quyền quản trị viên. Có hai tham số cơ bản mà chúng ta phải điều chỉnh để tận dụng tối đa khả năng của nó:
- Thuật toán nén (ALGO): Chúng tôi có một vài lựa chọn.
lz4Nó là phương án nhanh nhất, nhưngzstdNó cung cấp khả năng nén cao hơn nhiều, do đó là lựa chọn được khuyến nghị nhất để tối ưu hóa không gian lưu trữ. - Kích thước thiết bị (SIZE hoặc PERCENT): Chúng ta có thể xác định tỷ lệ phần trăm tổng dung lượng RAM (ví dụ: 50%) hoặc phân bổ một lượng cố định tính bằng megabyte. Đối với máy tính có 32 GB RAM, việc phân bổ khoảng 4 GB hoặc 8 GB thường là quá đủ.
Nếu bạn có phân vùng hoán đổi cũ trong tệp /etc/fstab, lý tưởng là bình luận về dòng đó (bằng cách thêm dấu # vào đầu) để hệ thống không cố gắng sử dụng ổ đĩa và luôn ưu tiên ZRAM. Sau khi lưu các thay đổi, chỉ cần khởi động lại máy tính để quá trình này bắt đầu.
Tùy chọn nâng cao: zram-generator và các quy tắc UDEV
Đối với những ai muốn có khả năng kiểm soát chính xác hơn hoặc sử dụng các bản phân phối như Arch Linux, thì có... zram-generatorCông cụ này cho phép bạn cấu hình các thiết bị ZRAM bằng cách sử dụng một tệp trong /etc/systemd/zram-generator.confTại đây, chúng ta có thể định nghĩa nhiều thiết bị, ví dụ, một thiết bị để hoán đổi và một thiết bị khác làm... Ổ đĩa RAM dùng để lưu trữ các tập tin tạm thời (/tmp).
Một phương án khác là sử dụng các quy tắc và mục nhập UDEV trong fstab. Tạo một tệp trong /etc/udev/rules.d/Chúng ta có thể yêu cầu nhân hệ điều hành tạo ra thiết bị. zram0 Với thuật toán cụ thể và quy mô khởi nghiệp được xác định trước. Điều này lý tưởng cho những người thích tránh cài đặt thêm các gói phần mềm và quản lý mọi thứ bằng các quy tắc hệ thống gốc.
Tối ưu hóa hiệu năng hạt nhân
Để ZRAM thực sự phát huy hết khả năng, chỉ kích hoạt nó thôi là chưa đủ; cần phải điều chỉnh một số thông số hệ thống. /etc/sysctl.d/Một điều chỉnh quan trọng là giá trị của vm.swappinessThông thường giá trị này là 60, nhưng đối với ZRAM, nên tăng đáng kể (thậm chí lên đến 180), vì chúng ta muốn hệ thống hoạt động hiệu quả hơn khi di chuyển dữ liệu vào bộ nhớ nén thay vì vào ổ đĩa.
Những điều chỉnh thú vị khác bao gồm việc đặt vm.page-cluster = 0giúp tối ưu hóa việc quản lý các trang trong bộ nhớ và điều chỉnh... vm.watermark_scale_factorNhững thay đổi này, vốn đã được các bản phân phối như Pop!_OS sử dụng, giúp cho... chuyển đổi giữa RAM vật lý và RAM nén Gần như không thể nhận thấy đối với người dùng cuối.
Để kiểm tra xem mọi thứ có hoạt động trơn tru hay không, chúng ta có thể sử dụng lệnh. zramctlĐiều này sẽ cho chúng ta thấy một bảng chi tiết với thuật toán được sử dụng, dung lượng dữ liệu được lưu trữ và, ấn tượng nhất, Dữ liệu đã được nén đến mức nào? (ví dụ, khi thấy rằng 2 GB dữ liệu giờ chỉ chiếm 400 MB RAM thực tế).
Việc triển khai hệ thống hoán đổi dữ liệu nén này cho phép bạn tận dụng tối đa phần cứng, giảm sự phụ thuộc vào các ổ đĩa chậm và cải thiện khả năng phản hồi tổng thể của hệ thống, bất kể bạn đang sử dụng máy tính cấu hình khiêm tốn hay máy trạm mạnh mẽ.


