2023年1月5日 星期四

[memory, zram] How to enable zram

How to enable zram

This document is following the procedures metioned by [1]. 

When memory was low, system would unresponsive and even freeze. ZRAM creates RAM based block storage named /dev/zram0 (or 1, 2, 3, etc). Pages written there are compressed and stored in memory. This allows for very fast I/O and the compression savings provide additional memory. See the document in detail.


1. Quick

sudo apt install zram-tools

sudo vi /etc/default/zramswap


File: /etc/default/zramswap

...

PERCENT=50   # 50% ram use zram

....



sudo zramswap stop

sudo zramswap start

sudo zramswap status



# Kernel

sudo vi /etc/sysctl.conf


File: /etc/sysctl.conf

vm.vfs_cache_pressure=500

vm.swappiness=100

vm.dirty_background_ratio=1

vm.dirty_ratio=50


sudo sysctl --system  # enable the parameters


2. Procedure

2.1. Before

Verification

free -m

sudo cat /proc/swaps



2.2. Install zram-tool

sudo apt install zram-tools

E.g.

Check

sudo cat /proc/swaps


zramswap status

2.3. Config

sudo vi /etc/default/zramswap


File: /etc/default/zramswap

...

PERCENT=50   # 50% ram use zram

....



sudo zramswap stop

sudo zramswap start

sudo zramswap status

E.g.

2.4. Verification


sudo zramswap status

E.g.


3. Setup Kernel parameters

3.1. Before

sudo cat /proc/swaps

3.2. Setup

sudo vi /etc/sysctl.conf


File: /etc/sysctl.conf

vm.vfs_cache_pressure=500

vm.swappiness=100

vm.dirty_background_ratio=1

vm.dirty_ratio=50


sudo sysctl --system

E.g.

3.3. Verification

sudo cat /proc/swaps

4. References

  1. https://haydenjames.io/raspberry-pi-performance-add-zram-kernel-parameters/

  2. https://www.kernel.org/doc/Documentation/blockdev/zram.txt