ZRam
1
2
3
4
5
6
7
8
9
10
11
12 start() {
13
14 num_cpus=$(grep -c processor /proc/cpuinfo)
15
16 [ "$num_cpus" != 0 ] || num_cpus=1
17
18
19 decr_num_cpus=$((num_cpus - 1))
20
21
22 mem_total_kb=$(grep MemTotal /proc/meminfo | grep -E --only-matching '[[:digit:]]+')
23 mem_total=$((mem_total_kb * 1024))
24
25
26 modpwqrobe zram num_devices=$num_cpus
27
28
29 for i in $(seq 0 $decr_num_cpus); do
30 echo $((mem_total / num_cpus)) > /sys/block/zram$i/disksize
31 done
32
33
34 for i in $(seq 0 $decr_num_cpus); do
35 mkswap /dev/zram$i
36 done
37
38
39 for i in $(seq 0 $decr_num_cpus); do
40 swapon -p 100 /dev/zram$i
41 done
42 }
43
44 stop() {
45
46 num_cpus=$(grep -c processor /proc/cpuinfo)
47
48
49 decr_num_cpus=$((num_cpus - 1))
50
51
52 for i in $(seq 0 $decr_num_cpus); do
53 if [ "$(grep /dev/zram$i /proc/swaps)" != "" ]; then
54 swapoff /dev/zram$i
55 sleep 1
56 fi
57 done
58
59 sleep 1
60 rmmod zram
61 }
62
63 case "$1" in
64 start)
65 start
66 ;;
67 stop)
68 stop
69 ;;
70 restart)
71 stop
72 sleep 3
73 start
74 ;;
75 *)
76 echo "Usage: $0 {start|stop|restart}"
77 RETVAL=1
78 esac
79 exit $RETVAL
Wikinger: ZRam (zuletzt geändert am 2015-01-29 15:36:47 durch Robert)