From Fedora Project Wiki

Put swap on ZRAM

Summary

Swap is good, unless it's slow. ZRAM is a compressed RAM disk, a kernel feature that presents a /dev/zramX block device that can be formatted as a swap device. The ZRAM block device can be assigned a size, but the actual RAM consumption is dynamically allocated and deallocated on demand.

This change will result in the inclusion of an upstream systemd rust-zram-generator on Fedora (all editions and spins). The presence of the generator will not enable swap-on-zram. Enabling swap-on-ZRAM will further require presence of a properly formatted configuration file.

This change proposal recommends all Fedora editions and spins opt into the feature. But at the time of this proposal the opt in candidates are:

- Fedora Workstation edition - All Fedora install ISOs

Fedora installation ISOs have been using an Anaconda provided systemd service unit and script, to setup swap-on-ZRAM, for several years. Likewise, Fedora IoT uses swap-on-ZRAM since inception, using its own systemd unit and script (functionally similar to Anaconda but in its own package). This proposal recommends converging on a single implementation.

The kernel supports multiple (up to 32) swap devices. The


Owner

Current status

  • Targeted release: [[Releases/<number> | Fedora <number> ]]
  • Last updated: 2020-05-29
  • FESCo issue: <will be assigned by the Wrangler>
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>

Detailed Description

Feedback

Benefit to Fedora

Scope

  • Proposal owners:
  • Other developers: N/A (not a System Wide Change)
  • Policies and guidelines: N/A (not a System Wide Change)
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

N/A (not a System Wide Change)

How To Test

N/A (not a System Wide Change)

User Experience

Dependencies

N/A (not a System Wide Change)

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change), Yes/No
  • Blocks product? product

Documentation

N/A (not a System Wide Change)

Release Notes