1 zram: Compressed RAM based block devices
2 ----------------------------------------
6 The zram module creates RAM based block devices named /dev/zram<id>
7 (<id> = 0, 1, ...). Pages written to these disks are compressed and stored
8 in memory itself. These disks allow very fast I/O and compression provides
9 good amounts of memory savings. Some of the usecases include /tmp storage,
10 use as swap disks, various caches under /var and maybe many more :)
12 Statistics for individual zram devices are exported through sysfs nodes at
17 Following shows a typical sequence of steps for using zram.
20 modprobe zram num_devices=4
21 This creates 4 devices: /dev/zram{0,1,2,3}
22 (num_devices parameter is optional. Default: 1)
24 2) Set max number of compression streams
25 Compression backend may use up to max_comp_streams compression streams,
26 thus allowing up to max_comp_streams concurrent compression operations.
27 By default, compression backend uses single compression stream.
30 #show max compression streams number
31 cat /sys/block/zram0/max_comp_streams
33 #set max compression streams number to 3
34 echo 3 > /sys/block/zram0/max_comp_streams
37 In order to enable compression backend's multi stream support max_comp_streams
38 must be initially set to desired concurrency level before ZRAM device
39 initialisation. Once the device initialised as a single stream compression
40 backend (max_comp_streams equals to 0) changing the value of max_comp_streams
41 will not take any effect, because single stream compression backend implemented
42 as a special case and does not support dynamic max_comp_streams. Only multi
43 stream backend supports dynamic max_comp_streams adjustment.
46 Set disk size by writing the value to sysfs node 'disksize'.
47 The value can be either in bytes or you can use mem suffixes.
49 # Initialize /dev/zram0 with 50MB disksize
50 echo $((50*1024*1024)) > /sys/block/zram0/disksize
53 echo 256K > /sys/block/zram0/disksize
54 echo 512M > /sys/block/zram0/disksize
55 echo 1G > /sys/block/zram0/disksize
58 There is little point creating a zram of greater than twice the size of memory
59 since we expect a 2:1 compression ratio. Note that zram uses about 0.1% of the
60 size of the disk when not in use so a huge zram is wasteful.
70 Per-device statistics are exported as various nodes under
89 Write any positive value to 'reset' sysfs node
90 echo 1 > /sys/block/zram0/reset
91 echo 1 > /sys/block/zram1/reset
93 This frees all the memory allocated for the given device and
94 resets the disksize to zero. You must set the disksize again
95 before reusing the device.