View difference between Paste ID: ZEKyMEx0 and Mtmexxtj
SHOW: | | - or go back to the newest paste.
1
#!/bin/bash
2
### BEGIN INIT INFO
3
# Provides: zram
4-
@@# Required-Start: $local_fs
4+
# Required-Start: $local_fs
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
15
16
start() {
17
    # get the number of CPUs
18
    num_cpus=$(grep -c processor /proc/cpuinfo)
19
    # if something goes wrong, assume we have 1
20
    [ "$num_cpus" != 0 ] || num_cpus=1
21
22
    # set decremented number of CPUs
23
    last_cpu=$((num_cpus - 1))
24
    
25
    #default Factor % = 90 change this value here or create /etc/default/zram
26
    FACTOR=90
27
    #& put the above single line in /etc/default/zram with the value you want
28
	[ -f /etc/default/zram ] && source /etc/default/zram || true
29
	factor=$FACTOR # percentage
30
31
    # get the amount of memory in the machine
32
#    memtotal=$(grep MemTotal /proc/meminfo | awk ' { print $2 } ')
33
     memtotal=$(grep MemTotal /proc/meminfo | sed 's/[^0-9]\+//g')
34
   mem_by_cpu=$(($memtotal/$num_cpus*$factor/100*1024))
35
36
    # load dependency modules
37
    # kernels 3.4 onwards
38
    
39
    modprobe zram num_devices=$num_cpus
40
    
41
    if [ $? -gt 0 ]; then
42
	  # kernels 3.1 - 3.3
43
      #modprobe zram zram_num_devices=$num_cpus        
44
    #else
45
      echo -e "Your Kernel needs to be compiled with ZRAM support:" \
46
      "\n\nDevice Drivers --> Staging Drivers --> Compressed RAM block device support (M)" \
47
      "\nDevice Drivers --> Staging Drivers --> Dynamic compression of swap pages and clean pagecache pages (*)" \
48
      "\n\nThe Liquorix Kernel (http://liquorix.net) has ZRAM support built in."
49
      exit 1
50
    fi
51
    echo "zram devices probed successfully"
52
    
53
    # initialize the devices
54
    for i in $(seq 0 $last_cpu); do
55
    echo $mem_by_cpu > /sys/block/zram$i/disksize
56
    # Creating swap filesystems
57
    mkswap /dev/zram$i
58
    # Switch the swaps on
59
    swapon -p 100 /dev/zram$i
60
    done
61
}
62
63
stop() {
64
    # get the number of CPUs
65
    num_cpus=$(grep -c processor /proc/cpuinfo)
66
67
    # set decremented number of CPUs
68
    last_cpu=$((num_cpus - 1))
69
70
    # Switching off swap
71
    for i in $(seq 0 $last_cpu); do
72
    if [ "$(grep /dev/zram$i /proc/swaps)" != "" ]; then
73
    swapoff /dev/zram$i
74
    sleep 1
75
    fi
76
    done
77
78
    sleep 1
79
    rmmod zram
80
}
81
82
case "$1" in
83
    start)
84
        start
85
        ;;
86
    stop)
87
        stop
88
        ;;
89
    restart)
90
        stop
91
        sleep 3
92
        start
93
        ;;
94
    *)
95
        echo "Usage: $0 {start|stop|restart}"
96
        RETVAL=1
97
esac
98
exit $RETVAL