Difference between ZRAM and ZSWAP

zram

  • Status: Available in mainline kernel as of version 3.14 (March 2014)

  • Implementation: compressed block device, memory is dynamically
    allocated as data is stored

  • Usage: Configure zram block device as a swap device to eliminate need
    for physical swap defice or swap file

  • Benefits:

    1. Eliminates need for physical swap device. This beame popular when
      netbooks first showed up. Zram (then compcache) allowed users to
      avoid swap shortening the lifespan of SSDs in these memory
      constrained systems.

    2. A zram block device can be used for other applications other than
      swap, anything you might use a block device for conceivably.

  • Drawbacks:

    1. Once a page is stored in zram it will remain there until paged in or
      invalidated. The first pages to be paged out will be the oldest
      pages (LRU list), these are ‘cold’ pages that are infrequently
      access. As the system continues to swap it will move on to pages
      that are warmer (more frequently accessed), these may not be able to
      be stored because of the swap slots consumed by the cold pages. What
      zram can not do (compcache had the option to configure a block
      backing device) is to evict pages out to physical disk. Ideally you
      want to age data out of the in-kernel compressed swap space out to
      disk so that you can use kernel memory for caching warm swap pages
      or free it for more productive use.

zswap

  • Status: Available in mainline kernel as of version 3.11 (September 2013)

  • Implementation: compressed in-kernel cache for swap pages. In-kernel
    cache is compressed, the compression algorithm is pluggable using the
    CryptoAPI and the storage for pages is dynamically allocated. Older
    pages can be evicted to disk making this a sort of write-behind
    cache.

  • Usage: Cache swap pages destined for regular swap devices (or swap
    files).

  • Benefits:

    1. Integration with swap code (using Frontswap API) allows zswap to
      choose to store only pages that compress well and handle memory
      allocation failures, in those cases pages are sent to the backing
      swap device.

    2. Oldest pages in the cache are pushed out to backing swap device to
      make room for newer pages, this solves the LRU inversion problem
      that a lack of page eviction would present.

  • Drawbacks:

    1. Needs a physical swap device (or swapfile).

Leave a Comment

techhipbettruvabetnorabahisbahis forumu