LINUX.ORG.RU

zram-init: cannot find /dev/zram0 ... (gentoo)

 ,


0

1

Вообщем пытаюсь запустить сию вещь, согласно этой статье.Однако...
В моем ядре (пользую 3.16.5) модуль ядра zram отсутствует (соответствующего параметра CONFIG_ZRAM в конфиге тоже нет), а есть brd и он скомпилен и установлен. Заменил в /etc/conf.d/zram-init zram на brd. Сервис стартует, модуль загружается, но, выдает
zram-init: cannot find /dev/zram0
Добавление строк в /etc/fstab типа
/dev/zram0 swap swap pri=16383 0 0
/dev/zram0 swap swap pri=16383 0 0

не помогает (ест-венно). Вообщем, вопрос: почему zram-init не создает блочные устройства (в моему случае 2 шт) /dev/zram0 и /dev/zram1? Тот ли модуль использую? Связано ли это с тем, что в системе уже используется файл подкачки (с соответстующей записью с fstab)?



Последнее исправление: kroni (всего исправлений: 2)

Тот ли модуль использую?

Нет, нужен именно zram, находится в Device Drivers -> Block Devices -> Compressed RAM block device support.

deadNightTiger ★★★★★
()
Ответ на: комментарий от deadNightTiger

такого параметра нет, есть RAM block device support. Отмечен как модуль.

kroni
() автор топика
$ zcat /proc/config.gz | grep CONFIG_Z
CONFIG_ZONE_DMA32=y
CONFIG_ZONE_DMA=y
CONFIG_ZONE_DMA_FLAG=1
# CONFIG_ZSWAP is not set
CONFIG_ZPOOL=y
CONFIG_ZBUD=y
CONFIG_ZSMALLOC=m
CONFIG_ZRAM=m
CONFIG_ZRAM_LZ4_COMPRESS=y
# CONFIG_ZRAM_DEBUG is not set
# CONFIG_ZD1211RW is not set
# CONFIG_ZEROPLUS_FF is not set
CONFIG_ZISOFS=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
$ lsmod | grep z
Module                  Size  Used by
zram                   13146  2 
lz4_decompress          2593  1 zram
lz4_compress            2790  1 zram
zsmalloc                6232  1 zram
$ dmesg | grep zram
[   35.924105] zram: Created 2 device(s) ...
[   35.948526] zram0: detected capacity change from 0 to 1073741824
[   35.957358] Adding 1048572k swap on /dev/zram0.  Priority:16383 extents:1 across:1048572k SSFS
[   35.980983] zram1: detected capacity change from 0 to 1073741824
[   36.047480] EXT4-fs (zram1): mounted filesystem without journal. Opts: (null)
$ cat /etc/conf.d/zram-init | grep '^[^#]'
load_on_start="yes"
unload_on_stop="yes"
num_devices="2"
type0="swap"
flag0="" # The default "16383" is fine for us
size0="1024"
maxs0="1" # maximum number of parallel processes for this device
algo0="lz4" # lz4 is faster than lzo
type1="/tmp"
flag1="ext4"
size1="1024"
opts1="strictatime" # e.g. "relatime" or "noatime" are also resonable choices
mode1="1777"
owgr1="" # No reason to change the default "root:root"
maxs1="2"
algo1="lz4"
anTaRes ★★★★
()
Использование zRam в качестве swap
Общий алгоритм монтирования swap в zRam

Операционных систем основанных на linux миллионы, так что для начала представлю общий алгоритм.
1. Если нет модуля zRam — пересобрать ядро, включив его.
2. Создать блочные устройства zRam:

modprobe zram num_devices=2

параметр num_devices — количество блочных устройств zRam. Дело в том, что сжатие происходит в один поток, так что есть шанс получить выйгрыш в производительности, создав кол-во блочных устройств, равное количеству ядер в вашем процессоре.
3. Задать размер блочным устройствам:

echo $((512*1024*1024)) > /sys/block/zram0/disksize
echo $((512*1024*1024)) > /sys/block/zram1/disksize

Здесь задается размер 512мб каждому устройству zRam.
Какой размер выбрать — дело весьма индивидуальное. Могу лишь посоветовать для общего случая — суммарный размер должен быть равен половине объема вашей оперативной памяти.
4. Создание разделов подкачки в zRam:

mkswap /dev/zram0
mkswap /dev/zram1

5. Монтирование разделов подкачки:

swapon /dev/zram0 -p 5
swapon /dev/zram1 -p 5

Здесь параметр -p 5 устанавливает приоритет раздела подкачки. По умолчанию он равен -p 1. Если Вы не планируете использовать раздел подкачки на жестком диске или твердотельном накопителе, то в принципе можете его не использовать.

Взято с просторов Интернет.

w1nner ★★★★★
()
Ответ на: комментарий от anTaRes
zcat /proc/config.gz | grep CONFIG_Z
# CONFIG_ZONE_DMA32 is not set
CONFIG_ZONE_DMA=y
CONFIG_ZONE_DMA_FLAG=1
# CONFIG_ZBUD is not set
# CONFIG_ZSMALLOC is not set
# CONFIG_ZD1211RW is not set
CONFIG_ZISOFS=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y

Полагаю, что мое ядро без оной поддержки (zram)
Как так то? И что делать?

kroni
() автор топика

все что касается настройки и установки zram-init - все просто. Вот с моим ядром проблема. Ставить vanilla или geek-sources?

kroni
() автор топика
Ответ на: комментарий от w1nner

все эти операции делает, или должен делать как раз zram-init

kroni
() автор топика
Ответ на: комментарий от kroni

Полагаю, что мое ядро без оной поддержки (zram)

возможно опция зависит от другой опции (CONFIG_ZSMALLOC ?)
сделать make nconfig и воспользоваться поиском (F8->ZRAM, вроде)
если найдет - внизу окошка будут зависимости перечислены

anTaRes ★★★★
()
Ответ на: комментарий от anTaRes

Да, оно. зависимость от ZSMALLOC (был откл). Появился соответствующий параметр. Всем спасибо. Тема закрыта.

kroni
() автор топика
Ответ на: комментарий от kroni

Лучше используй udev, как написано в статье по ссылке, и не используй ненужный zram-init.

Deleted
()
Ответ на: комментарий от w1nner

Использование zRam в качестве swap

Руки отрывать за такие туториалы.

Во-первых, zram научился несколько потоков.

Во-вторых, подключить swap нужно *обязательно* с опцией -d=pages, в противном случае память будет освобождаться не сразу (если вообще будет).

Macil ★★★★★
()
13 января 2015 г.

лучше использовать lzo, загрузка проца и так мала, а жмёт немного лучше

anonymous
()

и вообще, zswap должен быть лучше, чем zram

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.