RAMzSWAP (сжатый своп без использования диска)
Posted: 28 Apr 2011, 16:20
Поскольку памяти вечно не хватает, а свопить на диск не всегда есть возможность приходится искать нестандартные методы решения проблемы в частности как вариант свопить прямо в память при этом сжимая ее содержимое таким образом мы несколько увеличиваем объем памяти не используя при этом дополнительные устройства.
Проект основан на compcache v0.5.4 тут страница и и доп информация типа доков и прочего http://code.google.com/p/compcache/ в принципе я особо ничего не изменял а только слил все в кучу дабы получить один модуль и несколько подправил код согласно нашего ядра, конечно есть версии compcache и по новее но присутствуют проблемы с портированием так что пока только версия 0.5.х
Я немного протестировал и в принципе все работает правда стресс тест я так и не прошел но при полном отсутствии памяти я смог смотреть HD фильм и сжимать с помощью UPX модуль PHP весом в 13мегабайт на режиме 8 чего ранее я сделать не смог бы по причине банальной нехватки памяти. Так же проделывал тесты на новой прошивке от плейон и к моему удивлению она больше не падает ну по крайней мере пока хотя например на том же флеше что со свопом что без получаю один и тот же результат все-таки своп не является расширителем памяти но помочь в данном вопросе он может.
Короче пробуйте народ...
Установка:
Скопируйте файл zswapvenus.ko в /usr/local/etc и добавьте в /usr/local/etc/rcS следующие строки перед активацией основного свопа ищите строку начинающуюся с swapon
Размер диска выставлен на 32мега в принципе больше и не надо хотя можете поэкспериментировать, дополнительная информация по использованию драйвера на сайте проекта.
Состояние памяти смотрим стандартной командой free и состояние свопа командой cat /proc/ramzswap
Обновление 29/04/2011
Обновленный порт версии compcache 0.6.2 , детально об изменениях и новых возможностях смотрите на сайте проекта.
Установка:
Удаляем предыдущий драйвер и копируем содержимое архива в /usr/local/etc , поскольку поменялись имена строчки запуска следует заменить на:
Состояние свопа теперь доступно через /usr/local/etc/rzscontrol /dev/ramzswap0 --stats
Опять же пробуем, отписываемся если что...
Проект основан на compcache v0.5.4 тут страница и и доп информация типа доков и прочего http://code.google.com/p/compcache/ в принципе я особо ничего не изменял а только слил все в кучу дабы получить один модуль и несколько подправил код согласно нашего ядра, конечно есть версии compcache и по новее но присутствуют проблемы с портированием так что пока только версия 0.5.х
Я немного протестировал и в принципе все работает правда стресс тест я так и не прошел но при полном отсутствии памяти я смог смотреть HD фильм и сжимать с помощью UPX модуль PHP весом в 13мегабайт на режиме 8 чего ранее я сделать не смог бы по причине банальной нехватки памяти. Так же проделывал тесты на новой прошивке от плейон и к моему удивлению она больше не падает ну по крайней мере пока хотя например на том же флеше что со свопом что без получаю один и тот же результат все-таки своп не является расширителем памяти но помочь в данном вопросе он может.
Короче пробуйте народ...
Установка:
Скопируйте файл zswapvenus.ko в /usr/local/etc и добавьте в /usr/local/etc/rcS следующие строки перед активацией основного свопа ищите строку начинающуюся с swapon
- Code: Select all
/sbin/insmod /usr/local/etc/zswapvenus.ko disksize_kb=32768
mknod /dev/ramzswap0 b `cat /proc/devices | sed -n 's/\([0-9]\+\) ramzswap0/\1/p'` 0
swapon /dev/ramzswap0
Размер диска выставлен на 32мега в принципе больше и не надо хотя можете поэкспериментировать, дополнительная информация по использованию драйвера на сайте проекта.
Состояние памяти смотрим стандартной командой free и состояние свопа командой cat /proc/ramzswap
Обновление 29/04/2011
Обновленный порт версии compcache 0.6.2 , детально об изменениях и новых возможностях смотрите на сайте проекта.
Установка:
Удаляем предыдущий драйвер и копируем содержимое архива в /usr/local/etc , поскольку поменялись имена строчки запуска следует заменить на:
- Code: Select all
/sbin/insmod /usr/local/etc/ramzswap.ko num_devices=1 disksize_kb=32768
mknod /dev/ramzswap0 b `cat /proc/devices | sed -n 's/\([0-9]\+\) ramzswap/\1/p'` 0
swapon /dev/ramzswap0
Состояние свопа теперь доступно через /usr/local/etc/rzscontrol /dev/ramzswap0 --stats
Опять же пробуем, отписываемся если что...