Mặc dù ZRAM là giải pháp tuyệt vời để đổi lấy một chút sức mạnh CPU để giành thêm RAM, nhưng làm thế nào để cấu hình nó để dành nhiều hoặc ít RAM hơn cho ZRAM? Làm thế nào để thay đổi thuật toán nén? Trong những tình huống nào những thay đổi đó có giá trị? Đọc tiếp để biết cách cấu hình ZRAM trên Ubuntu.
Kiểm tra trạng thái ZRAM hiện tại
Hầu hết mọi người dùng ZRAM trên Ubuntu, Mint, hoặc các bản phân phối tương thích khác thông qua script zram-config. Đó là vì nó cho phép bạn tận dụng ZRAM theo cách đơn giản nhất. Bạn có thể cài nó với lệnh:
sudo apt install zram-config
Giá trị mặc định của nó đặt ZRAM ở một nửa RAM thực tế của máy tính, chia thành nhiều partition, một cho mỗi nhân CPU. Bạn có thể kiểm tra điều này với:
cat /proc/swaps
Bạn có thể thấy một file swap điển hình (entry "/var/cache/swap/swapfile") cùng tồn tại với tám volume ZRAM trong ảnh chụp màn hình của chúng tôi. Hệ thống của tôi có 8GB RAM. Nếu cộng các volume ZRAM đó lại, tổng là 4GB, tức là một nửa lượng RAM. Tuy nhiên, tùy thuộc vào khối lượng công việc của bạn, bạn có thể muốn thay đổi kích thước đó.
- Nếu bạn làm việc với đa phương tiện và video, những thứ đó không nén được tốt, nên tốt nhất là giảm kích thước ZRAM và tăng kích thước swap thực tế.
- Nếu bạn làm việc với cơ sở dữ liệu lớn hoặc các loại dữ liệu khác nén cao, thì ngược lại. Trong những kịch bản đó, bạn có thể tăng khả năng phản hồi của máy tính bằng cách tăng kích thước ZRAM.
Một điều chỉnh đáng giá khác liên quan đến thuật toán nén được ZRAM dùng. Mặc định, nó dùng LZO hoặc LZO-RLE, nhẹ trên CPU. Tuy nhiên, trên CPU hiện đại, thuật toán ZSTD mới hơn thường cung cấp tỷ lệ nén tốt hơn, và chi phí CPU cao hơn một chút không bị cảm thấy. Việc dùng thuật toán này thay vì các biến thể LZO cũ hơn là đáng giá nếu PC của bạn dưới một thập kỷ tuổi.
Bạn có thể dùng lệnh zramctl để kiểm tra thuật toán hiện tại ZRAM đang dùng. Gõ zramctl trong terminal và nhấn Enter để xem các ZRAM swap của bạn.
Zramctl nên đã có sẵn trên distro của bạn. Nếu không, vì nó là một phần của gói util-linux, bạn có thể mang nó lên bằng:
sudo apt install util-linux
Tuy nhiên, để kiểm soát cách ZRAM hoạt động, bạn sẽ phải chỉnh sửa script chính của nó. Hãy bắt đầu bằng thay đổi lượng RAM nó dùng.
Thay đổi kích thước ZRAM
Để thay đổi cài đặt ZRAM, bạn sẽ phải chỉnh sửa script exec trong thư mục bin. Gõ lệnh sau trong terminal:
sudo nano /usr/bin/init-zram-swapping
Để thay đổi lượng RAM được ZRAM dùng, bạn sẽ phải chỉnh sửa dòng sau:
mem=$(( (totalmem / 2 / ${NRDEVICES}) * 1024 ))
Dòng này định nghĩa bao nhiêu RAM ZRAM sẽ dùng dựa trên một số tính toán đơn giản:
totalmemlà lượng RAM cài trên PC của bạn/2chia totalmem cho hai, dịch thành "một nửa tổng lượng RAM"/ ${NRDEVICES}chia số đó cho số nhân trên PC của bạn* 1024nhân kết quả của trên với 1024
Bạn không thể, và không nên, thay đổi bất cứ thứ gì ở điểm 1 và 3, nhưng bạn có thể chơi với giá trị ở 2 và 4 để điều chỉnh lượng RAM ZRAM dùng.
- Bằng cách tăng
/ 2thành/ 4, tổng lượng RAM của bạn sẽ bị chia cho bốn thay vì hai. Do đó, ZRAM sẽ chỉ dùng một phần tư RAM thay vì một nửa. Chúng tôi khuyên không nên dành toàn bộ RAM cho ZRAM, nên tốt nhất để giá trị này ở/ 2hoặc tăng nó nếu bạn muốn ZRAM dùng ít bộ nhớ hơn.
- Tương tự, bằng cách giữ
/ 2nhưng giảm1024xuống512, bạn sẽ đạt được kết quả tương tự vì bạn sẽ giảm một nửa RAM khả dụng cho mỗi thiết bị. Nếu bạn muốn ZRAM dùng nhiều RAM hơn, bạn có thể tăng giá trị này lên1536.
Thay đổi thuật toán nén ZRAM
Bạn có thể thay đổi thuật toán nén của ZRAM từ cùng vị trí đó.
Trước tiên, kiểm tra thuật toán nén nó hiện đang dùng:
cat /sys/block/zram0/comp_algorithm
Bạn có thể kết hợp các thuật toán trong cấu hình ZRAM tùy chỉnh nâng cao. Tuy nhiên, nếu bạn đang dùng giá trị mặc định, tất cả partition ZRAM sẽ dùng cùng thuật toán. Do đó, bạn không phải kiểm tra tất cả – trong lệnh trên, chúng ta chỉ kiểm tra cái đầu tiên.
Chúng tôi đã đang dùng thuật toán ZSTD, mà bạn có thể thấy được bao trong ngoặc vuông trong ảnh chụp màn hình trên. Đó được coi là giải pháp tốt nhất hiện nay giữa tỷ lệ nén, tốc độ, và nhu cầu tài nguyên, nên hãy để nó như vậy. Tuy nhiên, nếu bạn đang dùng mặc định, bạn sẽ có LZO hoặc LZO-RLE được bật. Để thay đổi nó, quay lại script exec init-zram-swapping chúng ta đã chỉnh sửa trước đó. Ở đó, tìm dòng sau:
echo $mem > /sys/block/zram${DEVNUMBER}/disksize
Sao chép nó và dán ngay bên dưới để bạn có hai instance của cùng lệnh. Dòng này gán kết quả của các phép tính chúng ta thấy trước đó làm kích thước của mỗi volume ZRAM. Tuy nhiên, chúng ta sẽ dùng nó để định nghĩa thuật toán nén thay vào đó.
- Thay
$memtrong instance đầu tiên ở đầu dòng bằngzstd. - Thay
disksizeở cuối dòng bằngcomp_algorithm.
Dòng đã điều chỉnh nên trông như sau:
echo zstd > /sys/block/zram${DEVNUMBER}/comp_algorithm
Dòng đã chỉnh sửa của chúng tôi echo zstd làm giá trị trong tham số comp_algorithm thay vào đó.
Nếu bạn muốn dùng thuật toán khác, thay zstd trong lệnh trên bằng tên thuật toán.
Lưu file đã chỉnh sửa, khởi động lại máy tính, và kiểm tra kết quả.
Hãy chắc chắn kiểm tra hiệu suất hệ thống dưới tải khi nó đang chủ động dùng swap đã chỉnh sửa. Nếu bạn cảm thấy nó giật lag, bạn có thể đã làm quá và cần giảm giá trị bạn chọn. Nếu ngược lại, nó bay nhảy, bạn có thể tăng chúng thêm một chút.
Bây giờ bạn đã biết cách cấu hình ZRAM trong Ubuntu, nếu bạn đang muốn xây dựng PC mạnh hơn, đây là những điều cần lưu ý khi xây dựng PC cho Linux.