zram
Initial release | March 30, 2014 | (Linux 3.14)
---|---|
Written in | C |
Operating system | Linux |
Type | Linux kernel features |
License | GNU General Public License |
Website | www |
zram,formerly calledcompcache,is aLinux kernel modulefor creating a compressedblock devicein RAM, i.e. aRAM diskwith on-the-fly disk compression. The block device created with zram can then be used forswapor as general-purpose RAM disk. The two most common uses for zram are for the storage of temporary files (/tmp
) and as a swap device. Initially, zram had only the latter function, hence the original name "compcache" ( "compressed cache" ). Unlike swap, zram only uses 0.1% of the maximum size of the disk when not in use.[1]
After four years in the Linux kernel's driver staging area, zram was introduced into the mainline Linux kernel in version 3.14, released on March 30, 2014.[2]From Linux kernel version 3.15 onwards (released on June 8, 2014), zram supports multiple compression streams and multiplecompression algorithms.Compression algorithms includeDEFLATE(DEFLATE
),LZ4(LZ4
,andLZ4HC
"high compression" ),LZO(LZO-RLE
"run-length encoding" ),[3]Zstandard(ZSTD
),842(842
). From kernel 5.1, the default isLZO-RLE
,[3]which has a balance of speed and compression ratio. Like most other system parameters, the compression algorithm can be selected viasysfs.[4]
When used as a compressed swap space, zram is similar tozswap,which is not a general-purpose RAM disk, but rather an in-kernel compressed cache for swap pages. Until the introduction ofCONFIG_ZRAM_WRITEBACK
in kernel version 4.14, unlike zswap, zram was unable to use a storage device as a backing store, so it was unable to move less-frequently used pages to disk. However, zswap always requires a backing store, which is not the case for zram.
When used for swap, zram (like zswap) allows Linux to make more efficient use of RAM, since the operating system can then hold more pages of memory in the compressed swap than if the same amount of RAM had been used as application memory or disk cache. This is particularly effective on machines that do not have much memory.[5][6]In 2012,Ubuntubriefly considered enabling zram by default on computers with small amounts of installed RAM.[7]For this same reason,Fedoraenabled zram by default starting with release 33.[8]
Using compressed swap space with zram or zswap also offers advantages for low-end hardware devices such asembedded devicesandnetbooks.Such devices usually useflash-based storage,which has limited lifespan due towrite amplification,and may also use it to provideswap space.Using zram or zswap reduces the swap usage, which effectively reduces the amount of wear placed on flash-based storage and makes it last longer. Using zram also results in significantly reducedI/Ofor Linux systems that require swapping.[9][10]
See also
[edit]References
[edit]- ^"zram: Compressed RAM-based block devices — The Linux Kernel documentation".docs.kernel.org.RetrievedFebruary 25,2024.
- ^"Linux kernel 3.14, Section 1.2. zram: Memory compression mechanism considered stable".kernelnewbies.org.March 30, 2014.RetrievedApril 1,2014.
- ^ab"ZRAM Will See Greater Performance On Linux 5.1 - It Changed Its Default Compressor - Phoronix".www.phoronix.com.
- ^"Linux kernel 3.15, Section 1.7. zram: LZ4 compression support, improved performance".kernelnewbies.org.June 8, 2014.RetrievedJune 15,2014.
- ^"Increased performance in Linux with zram (virtual swap compressed in ram)".webupd8.org.October 2, 2011.RetrievedNovember 8,2011.
- ^"compcache Compressed Caching for Linux".code.google.com.April 27, 2010.RetrievedNovember 11,2011.
- ^Dinsan, Francis (December 8, 2012)."Ubuntu Linux Considers Greater Usage of zRAM".RetrievedOctober 30,2013.
- ^"Fedora 33 Looking To Use Swap On zRAM By Default With systemd's zram-generator - Phoronix".www.phoronix.com.RetrievedMarch 29,2021.
- ^"ZRAM Might Finally Be Moved Out Of Linux Staging".Phoronix.August 14, 2013.RetrievedFebruary 9,2014.
- ^"zRAM Is Still Hoping For A Promotion".Phoronix.November 25, 2013.RetrievedFebruary 9,2014.
External links
[edit]- zramLinux kernel documentation andzramctl(8)manual page
- Compcache, Compressed Caching for Linux
- Compcache: in-memory compressed swapping,May 26, 2009, LWN.net, by Nitin Gupta
- In-kernel memory compression,April 3, 2013, LWN.net, by Dan Magenheimer
- The Compression Cache: Virtual Memory Compression for Handheld Computers,March 16, 2000, byMichael J. Freedman