LINUX.ORG.RU
ФорумAdmin

Есть ли истории успеха использования zram?


0

2

Написал такой скрипт:

#!/bin/bash
use_part=3
use_part_of=4

NUMCPU=`ls -1 -d /dev/cpu/? | wc -l`
RAM=$((`cat /proc/meminfo | grep MemTotal | sed 's% %%g' | sed 's%kB%%g' | cut -d':' -f2`/1024))
ZRAM=$(($RAM/$use_part_of*$use_part))
ZRAM_DEV_SIZE=$(($ZRAM/$NUMCPU))
echo "RAM: 				$RAM MB"
echo "Total size of zram:		$ZRAM MB"
echo "Num of zram devices: 		$NUMCPU"
echo "Size of each zram device:	$ZRAM_DEV_SIZE MB"

modprobe zram zram_num_devices=$NUMCPU

ls -1 -d /sys/block/zram* |
while read i
do
      echo $(($ZRAM_DEV_SIZE*1024*1024)) > $i/disksize
done

ls -1 -d /dev/zram* |
while read n
do
      mkswap $n
      swapon $n -p 10 -d
done

имею одноядерник AMD с 2 гигами ОЗУ на системе Fedora 19 с самосборными ядрами 3.2.49 и 3.2.50 Почему-то при использовании swap ~200mb получаю полное зависание системы, независимо от того имеется физический swap или нет. В /var/log/messages ничего не сыпется

★★★★★

Ну можно считать что у меня заработало в ходе выяснения Не пойму как работает zRam

Однако по факту, много памяти я не получил, т.к. мои данные плохо сжимаются. Узнать об этом можно уже когда память забита «фгафно» и OM Killer на пороге. У меня старый SSD с невысокой скоростью записи, поэтому zswap для меня не решение, но при прочих равных я бы выбрал его, а не zram.

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

решение в том, что zram работает от приведенного скрипта хорошо, но это можно почувствовать только для хорошо сжимаемых данных, из которых особо жирным может оказаться разве что браузер, который проще пристрелить или затюнить через cgroups

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

ну а физический свап? Ведь если я его не отключаю, то туда тоже должно что-то капать. Нет? До него и не доходит. Zram заполняется примерно на 15%

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

У меня даже при zram+swap висит очень хорошо, т.к. OM Killer борется со сжатием за ресурсы и память не освобождается, возможно из-за двойной цепочки ram -> zram -> swap. При этом у меня swapiness 100.

Lordwind ★★★★★
()

Да, помогало при напряжных билдах, когда distcc сервера отваливаются и он локально пускает штук 8 компиляций (по 2-3Г каждая тянет). Всё тормозило, но не висло. С обычным свопом, как правило, всё виснет.

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

может проблема в самосборном ядре...позже отпишусь

r0ck3r ★★★★★
() автор топика

Мой собственный опыт использования zram таков.

1. У вас есть задача которая сейчас временно нужно выполнить. Но при выполнении она ощутимо лезет в swap с приличными тормазами. Если эти свопящиеся данные хорошо жмутся то выделение под zram 100%-200% оперативной памяти - дает ощутимый эфект. После выполнения задачи этот zram убирается.

2. Как бы виртуальное увиличение оперативной памяти. Выделение 100% принесет только дополнительные тормоза. Мой собственный опыт показал что в этом случае под zram нужно выделять чуть больше памяти чем обычно свопится (например, свопится у вас обычно 500Мб, вот чуть больше этого знавчения под zram и выделяется). Выделять при этом оперативы больше чем треть, смысла нет.

qwerta
()
Ответ на: комментарий от r0ck3r

Это именно то, только без лишних прослоек.

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

странно, на ядре из репов zram, с вышеприведенным скриптом, заполняется почти до 100% и ничего не виснет. По всей видимости проблема именно в самосборном ядре

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