zram compresses swap partitions into RAM for performance.
You need Linux kernel version 2.6.37.1 or better to use zram. For Fedora 16 you can just install kmod-staging from rpmfusion to get the module:
sudo yum install kmod-staging
First you have to setup your rpm build environment. For details see How to create an RPM package - Preparing your system.
# Short version of the howto
sudo yum install @development-tools fedora-packager
rpmdev-setuptree
# the real thing(tm)
make rpm
sudo rpm -Uhv ~/rpmbuild/RPMS/noarch/zram-*.noarch.rpm
There are 4 files you need to enable zram for Fedora. They are:
- zramstart
- zramstat
- zramstop
- mkzram.service
All these files can be found in the project directory.
Place "zramstart", zramstat and "zramstop" in the following directory.
/usr/sbin/
Place "mkzram.service" in the following directory.
/lib/systemd/system
Place "zram" in the following directory.
/etc/sysconfig
As root, run the following command to enable zram for Fedora.
systemctl daemon-reload
sudo systemctl enable mkzram.service
sudo systemctl start mkzram.service
Run the following command to make sure the service started properly.
sudo systemctl status mkzram.service
The output should look like this:
mkzram.service - Enable compressed swap in memory using zram
Loaded: loaded (/usr/lib/systemd/system/mkzram.service; enabled)
Active: active (exited) since Mon 2015-11-30 12:26:21 UTC; 2min 45s ago
Process: 2437 ExecStart=/usr/sbin/zramstart (code=exited, status=0/SUCCESS)
Main PID: 2437 (code=exited, status=0/SUCCESS)
To see how well your compressed swap performs run
zramstat # no sudo needed
The output looks like this:
/dev/zram0: 362.18% (180998144 -> 49973309)
/dev/zram1: 356.50% (180924416 -> 50749160)
This means 180,998,144 bytes got compressed to 49,973,309 bytes. The "swapped" memory is 362.18% of the RAM used. That's it!
The zramstart and zramstop scripts were written by Sergey Davidoff of Elementary OS. The zramstat script and RPM packaging bits by Doncho N. Gunchev.