blob: 7b6cbf414c5c842cef30d7b4e132ab113c3bb654 [file] [log] [blame]
Patrick Williamsb48b7b42016-08-17 15:04:38 -05001#!/bin/sh
2### BEGIN INIT INFO
3# Provides: zram
4# Required-Start:
5# Required-Stop:
6# Default-Start: 2 3 4 5
7# Default-Stop: 0 1 6
8# Short-Description: Increased Performance In Linux With zRam (Virtual Swap Compressed in RAM)
9# Description: Adapted from systemd scripts at https://github.com/mystilleef/FedoraZram
10# Included as part of antix-goodies package by anticapitalista <antiX@operamail.com>
11# This script was written by tradetaxfree and is found at http://crunchbanglinux.org/forums/topic/15344/zram-a-good-idea/
12# Copy this script (as root) from /usr/local/bin to /etc/init.d and then #update-rc.d zram defaults
13# After booting verify the module is loaded with: lsmod | grep zram
14### END INIT INFO
15set -e
16
17start() {
18 # get the number of CPUs
19 num_cpus=$(grep -c processor /proc/cpuinfo)
20 # if something goes wrong, assume we have 1
21 [ "$num_cpus" != 0 ] || num_cpus=1
22
23 # set decremented number of CPUs
24 last_cpu=$((num_cpus - 1))
25
26 #default Factor % = 90 change this value here or create /etc/default/zram
27 FACTOR=90
28 #& put the above single line in /etc/default/zram with the value you want
29 [ -f /etc/default/zram ] && . /etc/default/zram || true
30 factor=$FACTOR # percentage
31
32 # get the amount of memory in the machine
33 memtotal=$(grep MemTotal /proc/meminfo | awk ' { print $2 } ')
34 mem_by_cpu=$(($memtotal/$num_cpus*$factor/100*1024))
35
36 # load dependency modules
37 modprobe zram zram_num_devices=$num_cpus
38 echo "zram devices probed successfully"
39
40 # initialize the devices
41 for i in $(seq 0 $last_cpu); do
42 echo 1 > /sys/block/zram$i/reset
43 echo $mem_by_cpu > /sys/block/zram$i/disksize
44 # Creating swap filesystems
45 mkswap /dev/zram$i
46 # Switch the swaps on
47 swapon -p 100 /dev/zram$i
48 done
49}
50
51stop() {
52 # get the number of CPUs
53 num_cpus=$(grep -c processor /proc/cpuinfo)
54
55 # set decremented number of CPUs
56 last_cpu=$((num_cpus - 1))
57
58 # Switching off swap
59 for i in $(seq 0 $last_cpu); do
60 if [ "$(grep /dev/zram$i /proc/swaps)" != "" ]; then
61 swapoff /dev/zram$i
62 sleep 1
63 fi
64 done
65 sleep 1
66 rmmod zram
67}
68
69case "$1" in
70 start)
71 start
72 ;;
73 stop)
74 stop
75 ;;
76 restart)
77 stop
78 sleep 3
79 start
80 ;;
81 *)
82 echo "Usage: $0 {start|stop|restart}"
83 RETVAL=1
84esac
85exit $RETVAL