Size: 1538
Comment:
|
Size: 1960
Comment: fix # of CPUs
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
#language en | |
Line 7: | Line 7: |
* http://en.wikipedia.org/wiki/Zram | * WikiPedia:Zram |
Line 11: | Line 11: |
Copy the following script to /etc/init.d/zram: | Copy the following script to ''/etc/init.d/zram'': |
Line 13: | Line 13: |
## /etc/init.d/zram #!/bin/bash |
#!sh #!/bin/sh |
Line 22: | Line 22: |
# Description: Use compressed RAM as in-memory swap | # Description: Use compressed RAM as in-memory swap |
Line 26: | Line 26: |
# Thanks to Przemysław Tomczyk for suggesting swapoff parallelization # Distributed under the GPL version 3 or above, see terms at # https://gnu.org/licenses/gpl-3.0.txt |
|
Line 30: | Line 33: |
CPUS=`grep -c processor /proc/cpuinfo` | CPUS=`nproc` |
Line 39: | Line 42: |
echo $SIZE > /sys/block/zram$i/disksize | echo $SIZE > /sys/block/zram$i/disksize |
Line 47: | Line 50: |
swapoff /dev/zram$i | swapoff /dev/zram$i && echo "disabled disk $n of $CPUS" & |
Line 49: | Line 52: |
wait | |
Line 59: | Line 63: |
then instruct you system to start it at boot time, with the command | then you may have to make the script executable: {{{ chmod +x /etc/init.d/zram }}} then instruct your system to start it at boot time, with the command |
Line 63: | Line 72: |
== NB! == For the version with the systemd should be used package [[http://packages.ubuntu.com/vivid/zram-config|Ubuntu zram-config 0.3]] and newer. |
zram (previously called compcache) can create RAM based block devices. It is an experimental (staging) module of the Linux kernel since 3.2.
Background information
Startup script
Copy the following script to /etc/init.d/zram:
#!/bin/sh ### BEGIN INIT INFO # Provides: zram # Required-Start: $local_fs # Required-Stop: $local_fs # Default-Start: S # Default-Stop: 0 1 6 # Short-Description: Use compressed RAM as in-memory swap # Description: Use compressed RAM as in-memory swap ### END INIT INFO # Author: Antonio Galea <antonio.galea@gmail.com> # Thanks to Przemysław Tomczyk for suggesting swapoff parallelization # Distributed under the GPL version 3 or above, see terms at # https://gnu.org/licenses/gpl-3.0.txt FRACTION=75 MEMORY=`perl -ne'/^MemTotal:\s+(\d+)/ && print $1*1024;' < /proc/meminfo` CPUS=`nproc` SIZE=$(( MEMORY * FRACTION / 100 / CPUS )) case "$1" in "start") param=`modinfo zram|grep num_devices|cut -f2 -d:|tr -d ' '` modprobe zram $param=$CPUS for n in `seq $CPUS`; do i=$((n - 1)) echo $SIZE > /sys/block/zram$i/disksize mkswap /dev/zram$i swapon /dev/zram$i -p 10 done ;; "stop") for n in `seq $CPUS`; do i=$((n - 1)) swapoff /dev/zram$i && echo "disabled disk $n of $CPUS" & done wait sleep .5 modprobe -r zram ;; *) echo "Usage: `basename $0` (start | stop)" exit 1 ;; esac
then you may have to make the script executable:
chmod +x /etc/init.d/zram
then instruct your system to start it at boot time, with the command
insserv zram
NB!
For the version with the systemd should be used package Ubuntu zram-config 0.3 and newer.