zram-generator package will install necessary tools to automate the creation on boot the compressed RAM devices. This article focuses on compressed swap devices.
As of writing this article, the latest version in the package system under CentOS Stream 9 is 0.32. The the latest version on the original page of the software is much higher number 1.1.2 and many of the following configuration options are marked as OBSOLETE, but they work in the 0.32 version included in CentOS Stream 9 (and the new configuration options does not!). That’s why it is important to check the included sample configuration file.
The package installs no configuration file, just a sample configuration file – /usr/share/doc/zram-generator/zram-generator.conf.example.
zram in the kernel space – https://docs.kernel.org/admin-guide/blockdev/zram.html
STEP 1) Install the zram-generator
It is easy and straightforward, just a single package:
[root@srv) ~]# dnf install -y zram-generator Last metadata expiration check: 3:42:20 ago on Fri 20 Oct 2023 05:18:32 AM UTC. Dependencies resolved. ============================================================================================================== Package Architecture Version Repository Size ============================================================================================================== Installing: zram-generator x86_64 0.3.2-7.el9 appstream 409 k Transaction Summary ============================================================================================================== Install 1 Package Total download size: 409 k Installed size: 983 k Downloading Packages: zram-generator-0.3.2-7.el9.x86_64.rpm 2.1 MB/s | 409 kB 00:00 -------------------------------------------------------------------------------------------------------------- Total 1.3 MB/s | 409 kB 00:00 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : zram-generator-0.3.2-7.el9.x86_64 1/1 Running scriptlet: zram-generator-0.3.2-7.el9.x86_64 1/1 Verifying : zram-generator-0.3.2-7.el9.x86_64 1/1 Installed: zram-generator-0.3.2-7.el9.x86_64 Complete!
STEP 2) Create a configuration and start the service
By default, there is no configuration file. The best place for it is /etc/systemd/zram-generator.conf.
Here is an example, which will fulfill the following:
- Set the maximum RAM of the system, because it is a hard-coded 9G, by default. And if not redefined the device will be with 9G max memory no matter how much is tuned by the other options.
- Set the RAM of the compressed device.
- Set the fraction of the ram, which may be used by the device. Again as with the above configuration option, it is important, because it limits the maximum available memory to allocate for the compressed device.
- Set the type of the device – filesystem or swap device.
There is the real world example configuration – /etc/systemd/zram-generator.conf
[root@srv ~]# cat /etc/systemd/zram-generator.conf [zram0] host-memory-limit = none max-zram-size = 32768 zram-fraction = 1.0 compression-algorithm = zstd swap-priority = 100 fs-type = swap