#!/bin/sh ### BEGIN INIT INFO # Provides: zram # Required-Start: # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Increased Performance In Linux With zRam (Virtual Swap Compressed in RAM) # Description: Adapted from systemd scripts at https://github.com/mystilleef/FedoraZram # Included as part of antix-goodies package by anticapitalista # This script was written by tradetaxfree and is found at http://crunchbanglinux.org/forums/topic/15344/zram-a-good-idea/ # Copy this script (as root) from /usr/local/bin to /etc/init.d and then #update-rc.d zram defaults # After booting verify the module is loaded with: lsmod | grep zram ### END INIT INFO set -e start() { # get the number of CPUs num_cpus=$(grep -c processor /proc/cpuinfo) # if something goes wrong, assume we have 1 [ "$num_cpus" != 0 ] || num_cpus=1 # set decremented number of CPUs last_cpu=$((num_cpus - 1)) #default Factor % = 90 change this value here or create /etc/default/zram FACTOR=90 #& put the above single line in /etc/default/zram with the value you want [ -f /etc/default/zram ] && . /etc/default/zram || true factor=$FACTOR # percentage # get the amount of memory in the machine memtotal=$(grep MemTotal /proc/meminfo | awk ' { print $2 } ') mem_by_cpu=$(($memtotal/$num_cpus*$factor/100*1024)) # load dependency modules modprobe zram num_devices=$num_cpus echo "zram devices probed successfully" # initialize the devices for i in $(seq 0 $last_cpu); do echo 1 > /sys/block/zram$i/reset echo $mem_by_cpu > /sys/block/zram$i/disksize # Creating swap filesystems mkswap /dev/zram$i # Switch the swaps on swapon -p 100 /dev/zram$i done } stop() { # get the number of CPUs num_cpus=$(grep -c processor /proc/cpuinfo) # set decremented number of CPUs last_cpu=$((num_cpus - 1)) # Switching off swap for i in $(seq 0 $last_cpu); do if [ "$(grep /dev/zram$i /proc/swaps)" != "" ]; then swapoff /dev/zram$i sleep 1 fi done sleep 1 rmmod zram } case "$1" in start) start ;; stop) stop ;; restart) stop sleep 3 start ;; *) echo "Usage: $0 {start|stop|restart}" RETVAL=1 esac exit $RETVAL