logo
ISSN 2734-9020

Công nghệ mới giúp “nhét thêm RAM vào RAM”, tốc độ đọc tăng tới 452 lần

Thứ năm, 08/10/2026 - 18:18

Một công nghệ mới do nhóm kỹ sư Meta phát triển có thể giúp Linux sử dụng bộ nhớ nén với tốc độ gần như RAM thông thường.

Nén dữ liệu để tiết kiệm RAM không phải ý tưởng mới. Linux từ lâu đã có ZRAM và zswap, hai công nghệ cho phép nén những vùng bộ nhớ ít được sử dụng thay vì chuyển toàn bộ dữ liệu xuống ổ cứng hoặc SSD.

Tuy nhiên, nhóm kỹ sư tại Meta cho rằng điểm nghẽn lớn nhất của phương pháp hiện tại không nằm ở quá trình nén và giải nén. Phần gây tốn thời gian hơn lại là cơ chế swap và các lỗi trang bộ nhớ phát sinh khi hệ điều hành cần truy cập dữ liệu.

Giải pháp mới mang tên CRAM, viết tắt của Compressed RAM, tìm cách loại bỏ lớp trung gian này. Thay vì giả vờ làm một thiết bị lưu trữ như ZRAM, CRAM giữ dữ liệu đã nén ngay trong RAM và cho phép Linux quản lý nó giống một vùng bộ nhớ thông thường.

Khác biệt không chỉ nằm ở thuật toán nén

Với ZRAM, dữ liệu được nén rồi đặt trong một thiết bị khối nằm trên RAM. Khi cần sử dụng, hệ điều hành vẫn phải thực hiện nhiều thao tác tương tự quá trình đọc dữ liệu từ vùng swap, bao gồm xử lý lỗi trang và giải nén bằng phần mềm.

Công nghệ mới giúp “nhét thêm RAM vào RAM”, tốc độ đọc tăng tới 452 lần - Ảnh 1.

Theo nhóm phát triển, chi phí giải nén chỉ chiếm một phần nhỏ; lỗi trang và cơ chế swap mới là những nguyên nhân chính làm giảm hiệu suất.

CRAM đi theo hướng khác. Công nghệ này sử dụng một NUMA node riêng để đại diện cho vùng bộ nhớ nén, thay vì trình bày nó với hệ điều hành như một ổ đĩa ảo. Nhờ đó, Linux vẫn có thể dùng các cơ chế quản lý bộ nhớ sẵn có như di chuyển trang, phân tầng bộ nhớ, thu hồi tài nguyên và điều chỉnh kích thước vùng nhớ.

Theo phần trình bày của Gregory Price tại Linux Plumbers Conference 2026, dữ liệu trong CRAM vẫn có thể được ánh xạ trong bảng trang và bộ nhớ đệm. Hệ thống có thể đọc theo từng byte hoặc cache line mà không cần thực hiện bước giải nén bằng phần mềm như ZRAM.

Phần cứng phụ trách quá trình nén và giải nén, khiến dữ liệu có thể được đọc với độ trễ rất thấp. Nhóm phát triển mô tả CRAM là có khả năng hoạt động gần với tốc độ DRAM thông thường.

Trong bài test chỉ đọc, CRAM đạt khoảng 489 triệu thao tác mỗi giây, trong khi ZRAM đạt khoảng 1,1 triệu thao tác. Chênh lệch tương ứng khoảng 445-452 lần tùy phép đo.

Đây là kết quả rất lớn, nhưng không đồng nghĩa mọi máy tính Linux đều có thể nhanh hơn 452 lần. Con số này đo riêng khả năng truy cập vùng nhớ nén trong điều kiện gần như chỉ đọc, nơi CRAM không phải xử lý những hạn chế phức tạp liên quan đến việc ghi dữ liệu.

Khi bài kiểm tra có 20% thao tác ghi, mức cải thiện giảm xuống còn khoảng 5,4 lần so với ZRAM. Đây vẫn là kết quả đáng chú ý, nhưng cho thấy CRAM mất phần lớn lợi thế khi dữ liệu cần được thay đổi.

Công nghệ mới giúp “nhét thêm RAM vào RAM”, tốc độ đọc tăng tới 452 lần - Ảnh 2.

CRAM sử dụng một node NUMA riêng cùng cơ chế di chuyển dữ liệu và kiểm soát cấp phát bộ nhớ, thay vì hoạt động như thiết bị swap.

Nguyên nhân là hệ thống không thể ghi trực tiếp lên dữ liệu đang ở trạng thái nén. Trang bộ nhớ phải được đưa trở lại vùng NUMA ban đầu, giải nén rồi mới có thể chỉnh sửa. Quá trình này kéo theo lỗi trang và hoạt động di chuyển bộ nhớ, làm hiệu suất giảm mạnh.

Khó khăn lớn nhất của bộ nhớ nén là xác định dung lượng thực tế mà hệ điều hành có thể sử dụng. Một trang chứa toàn số 0 có thể được nén xuống kích thước rất nhỏ, trong khi dữ liệu đã được nén từ trước gần như không thể thu gọn thêm.

Điều đó khiến dung lượng “RAM logic” thay đổi liên tục. Hệ điều hành không thể biết chính xác vùng nhớ nén sẽ chứa được bao nhiêu dữ liệu tiếp theo hoặc thời điểm nào nó thực sự cạn chỗ.

Công nghệ mới giúp “nhét thêm RAM vào RAM”, tốc độ đọc tăng tới 452 lần - Ảnh 3.

Khả năng nén thay đổi theo từng loại dữ liệu khiến việc xác định dung lượng RAM khả dụng thực tế vẫn là bài toán chưa được giải quyết hoàn toàn.

Nhóm phát triển thừa nhận CRAM chưa giải quyết triệt để vấn đề này. Một cơ chế được gọi vui là “Chicken Bit” cho phép Linux ngừng đưa thêm dữ liệu vào CRAM trong lúc hệ thống đang bận quản lý phân bổ bộ nhớ. Biện pháp này giúp tránh tình trạng lỗi dây chuyền khi dữ liệu được ghi vào nhanh hơn khả năng cấp phát của CRAM, nhưng chưa phải giải pháp hoàn chỉnh.

Không chỉ dành cho máy chủ Meta

CRAM được phát triển bởi các kỹ sư Meta nên đối tượng đầu tiên nhiều khả năng là những máy chủ Linux quy mô lớn. Nhóm nghiên cứu cho biết nguyên mẫu đã đạt hiệu suất gần RAM gốc trong một số bài kiểm tra TAOBench và FIO, đồng thời được thử nghiệm với nhiều hệ thống tệp tích hợp trong kernel Linux.

Công nghệ mới giúp “nhét thêm RAM vào RAM”, tốc độ đọc tăng tới 452 lần - Ảnh 4.

Lợi thế của CRAM giảm dần khi tỷ lệ ghi tăng, nhưng trong trường hợp thử nghiệm khắc nghiệt nhất, công nghệ này vẫn nhanh hơn ZRAM khoảng 5,4 lần ở mức 20% thao tác ghi.

Tuy nhiên, công nghệ nén bộ nhớ cũng được sử dụng trên máy tính cá nhân, thiết bị nhúng và máy chơi game cầm tay. Steam Deck, chẳng hạn, có thể dùng ZRAM để giảm áp lực lên lượng RAM giới hạn.

Nếu CRAM được hoàn thiện và tích hợp vào nhân Linux, công nghệ này có thể đem lại lợi ích cho nhiều thiết bị hơn, từ máy chủ AI cho đến PC cấu hình thấp. Dù vậy, dự án hiện vẫn trong giai đoạn thử nghiệm. Mức tăng 452 lần là kết quả của một trường hợp cụ thể, chưa phải hiệu năng mà người dùng Linux có thể nhận được ngay trên máy tính của mình.

Tuấn Nguyễn

Tags: