Ошибки zram

Автор I-Jurij, 27 октября 2013, 19:09:59

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

I-Jurij

Cкрипт в /etc/init.d:

#!/bin/bash

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 ] && source /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))
if ! modprobe zram zram_num_devices=$num_cpus
then
echo -e "Your Kernel needs to be compiled with ZRAM support:" \
"\n\nDevice Drivers --> Staging Drivers --> Compressed RAM block device support (M)" \
"\nDevice Drivers --> Staging Drivers --> Dynamic compression of swap pages and clean pagecache pages (*)" \
"\n\nThe Liquorix Kernel (http://liquorix.net) has ZRAM support built in."
exit 1
fi
echo "zram devices probed successfully"
# initialize the devices
for i in $(seq 0 $last_cpu); do
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


Вывод dmesg:
$ dmesg | grep zram
[   23.672795] zram: module is from the staging directory, the quality is unknown, you have been warned.
[   23.673975] zram: Creating 1 devices ...
[   23.830019] Adding 403152k swap on /dev/zram0.  Priority:100 extents:1 across:403152k SS
[   23.833571] Buffer I/O error on device zram0, logical block 100788


Что можно сделать?

ferum

В начале скрипта поднять через modprobe zram ( в скриптах не силён)
Если не получится - костыль добавить zram в конец файла /etc/modules
Русские дебианщики против цифрового слабоумия !

I-Jurij

#2
Т.е. модуль ядра сам по себе не работает, его нужно запустить (добавить)?

ferum

Скажем так, по умолчанию не запускается. Может косяк, может так задумано.
Русские дебианщики против цифрового слабоумия !

I-Jurij

Спасибо, проверю.
Сейчас пока юзаю ядро 3.11, там вроде zswap по умолчанию есть.