Linux

Compcache в Linux, сожми свой SWAP

Вот на глаза попался проект Compcache.

Суть проекта:
Создать SWAP раздел в ОЗУ с сжатием.
Как утверждают разработчики, проект создан для старых ПК и встраиваемых устройств с ограниченным объёмом ОЗУ. (Пользователям Eee PC с 512 ОЗУ на заметку)

В последних версиях Ubuntu это уже активно используется.

Ну что же, для ознакомления я решил поставить модуль Compcache на свой ПК: ОС Gentoo, kernel 2.6.28, ОЗУ 2Гб

Приступим:

cd /tmp
wget http://compcache.googlecode.com/files/compcache-0.5.1.tar.gz
tar xvfz compcache-0.5.1.tar.gz
cd compcache-0.5.1
make

Всё, можно работать.

Использование:
В папке присутствует скрипт use_compcache.sh
Его следует использовать так:
./use_compcache.sh размер_ОЗУ_в_Кб

По умолчанию забирается 25% от текущего ОЗУ

Для отключения есть скрипт unuse_compcache.sh

Мне пришлось в Gentoo поправить скрипт use_compcache.sh, иначе он ругался:

insmod: error inserting ‘lzo1x_compress.ko’: -1 Invalid module format
insmod: error inserting ‘lzo1x_decompress.ko’: -1 Invalid module format

проверив командами:

modprobe -q lzo_compress
modprobe -q lzo_decompress

Я убедился что модули присутствуют в системе, поэтому поправил скрипт:

Заменил

$MODPROBE_BIN -q lzo_compress || INSMOD lzo1x_compress
$MODPROBE_BIN -q lzo_decompress || INSMOD lzo1x_decompress

На

$MODPROBE_BIN -q lzo_compress
$MODPROBE_BIN -q lzo_decompress

Затем выключил SWAP раздел с помощью команды:

swapoff /dev/имя_swap_раздела

И выполнил скрипт use_compcache.sh от root’a

sudo -i
./use_compcache.sh

Получил ответ:

compcache size not given. Using default (25% of RAM).
Setting compcache size to ~496 MB …
Loading modules …
Setting up swap device …
Done!

Ввёл команду free -m и убедился что всё работает.

Для моего домашнего ПК с 2 Gb ОЗУ вряд-ли понадобится, да и своём Eee PC 701 я память до 2 Gb увеличил, но идея очень интересная.

UPD:
Производительность можно глянуть ТУТ.

Вернуться Назад