Page 2 of 4

Re: RAMzSWAP (сжатый своп без использования диска)

PostPosted: 03 May 2011, 06:14
by Virtual
а где вы взяли первую строку? ;)
да и проверить легко....:
Code: Select all
~ # cat /proc/devices | sed -n 's/\([0-9]\+\) ramzswap0/\1/p'
254
~ #

Re: RAMzSWAP (сжатый своп без использования диска)

PostPosted: 03 May 2011, 07:47
by Genrix60
Установка:
Удаляем предыдущий драйвер и копируем содержимое архива в /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

А вот тута и взял вторую строку, в rsC то три сроки дописывать нужно.
И опять же для проверки
~ # cat /proc/devices | sed -n 's/\([0-9]\+\) ramzswap0/\1/p' а имеем ramzswap/\1/p'

Re: RAMzSWAP (сжатый своп без использования диска)

PostPosted: 03 May 2011, 11:24
by Sekator500
Ошибок нет все верно, новая версия может поддерживать несколько устройств собственно я на ней сейчас сижу все работает.

Давайте по порядку, сначала установите драйвер (если получите ошибку на insmod запустите команду dmesg) и смотрим команду dmesg проинициализировался драйвер или нет, дополнительно проверяем сидит ли он в плеере или нет команда lsmod и так же смотрим наличие устройства cat /proc/devices

Далее ссылка на устройство через команду mknod и смотрим появилось ли оно ls -la /dev (должно быть ramzswap0)

Ну и потом установка самого свопа через swapon смотрим активен ли он команда free и cat /proc/swaps ну и пробуем посмотреть статистику команда rzscontrol


Отпишите потом результат...

Re: RAMzSWAP (сжатый своп без использования диска)

PostPosted: 03 May 2011, 17:38
by Genrix60
Sekator500 wrote:...ну и пробуем посмотреть статистику команда rzscontrol
Отпишите потом результат...

compcache 0.6.2
Swap есть в системе и работает, а вот посмотреть статистику команда rzscontrol не удаётся

BusyBox v1.1.3 (2011.01.17-01:41+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

/ # /usr/local/etc/rzscontrol /dev/ramzswap0 --stats
-sh: /usr/local/etc/rzscontrol: Unknown error 13
/ #

Re: RAMzSWAP (сжатый своп без использования диска)

PostPosted: 03 May 2011, 18:38
by Lossless
Genrix60 wrote:-sh: /usr/local/etc/rzscontrol: Unknown error 13

Ищем в инете файл errno.h (лежит на любом сайте, посвященном линю). В нем ищем нужный код:
Code: Select all
#define EACCES 13 /* Permission denied */

Далее ищем расшифровку к данной ошибке.
Итого, имеем:
а) а был ли мальчик? (т.е. файл в нужном месте)
б) а это точно мальчик? (атрибут x у него есть?) т.е. не забыли ли ему дать права на запуск? (chmod +x)
на оба вопроса ответит команда ls -al /usr/local/etc/rzscontrol

Re: RAMzSWAP (сжатый своп без использования диска)

PostPosted: 04 May 2011, 05:15
by Genrix60
а) мальчик присутствует (т.е. файл в нужном месте) :?
б) мальчик обижен - забыли ему дать права на запуск (chmod +x) :shock:

Re: RAMzSWAP (сжатый своп без использования диска)

PostPosted: 06 May 2011, 14:35
by Ajax
Модуль наверное хороший по задумке но не для таких машин как R1 с такой маленькой оперативой...Кто не верит запустите ramzswap и transmission 2.12 с двумя да даже с одним торрентом..Уверен не проработает и полчаса до глухого зависона...Отжирая 32 метра и без того малой оперативы...Уверен для R1 swap в оперативе -ненужные и лишние тормоза...Используйте swap на диске...

Re: RAMzSWAP (сжатый своп без использования диска)

PostPosted: 06 May 2011, 16:51
by Sekator500
Ajax wrote:Модуль наверное хороший по задумке но не для таких машин как R1 с такой маленькой оперативой...Кто не верит запустите ramzswap и transmission 2.12 с двумя да даже с одним торрентом..Уверен не проработает и полчаса до глухого зависона...Отжирая 32 метра и без того малой оперативы...Уверен для R1 swap в оперативе -ненужные и лишние тормоза...Используйте swap на диске...


Ну начнем с того что память не выделается под своп. Потом 32 мега для трансмишена это явно мало особенно учитывая тот факт что сжатый своп хранится в памяти. В итоге получим OOM это вполне закономерно.

В идеале данный метод увеличивает память динамически в зависимости от типа данных содержащихся в свопе кроме того существует еще механизм для взаимодействия с физическим свопом (курите доки по этому модулю) и как вариант можно добавить отдельно своп на диск с низким приоритетом.

Так что никаких тормозов или проблем с этим модулем нет ;)

Re: RAMzSWAP (сжатый своп без использования диска)

PostPosted: 06 May 2011, 19:32
by Ajax
Тогда я не понял..При установке ramzswap и если у меня есть еще swap 530 на диске( free показывает 562 подкачки) работают оба swap или только виртуальный.?Ведь по идее трансмиш при заполнении ramswap должен был использовать физический ...и не висеть как он висел уменя...Тогда подскажите как раздать приоритеты свапам используя оба вида.. :) И до каких максимально стабильных величин можно увеличивать ramswap относительно оперативной памяти?

Re: RAMzSWAP (сжатый своп без использования диска)

PostPosted: 09 May 2011, 12:28
by cybernetik
Ajax wrote:как раздать приоритеты свапам используя оба вида.

В конце rcS добавляете по аналогии:
Code: Select all
/sbin/insmod /usr/local/etc/ramzswap.ko num_devices=1 disksize_kb=20480
mknod /dev/ramzswap0 b `cat /proc/devices | sed -n 's/\([0-9]\+\) ramzswap/\1/p'` 0
swapon /dev/ramzswap0
swapon /tmp/hdd/root/swapfile

Получаете:
Code: Select all
/ # cat /proc/swaps
Filename                                Type            Size    Used    Priority
/mnt/rd/swap.img                        file            32      0       -1
/dev/ramzswap0                          partition       20472   20472   -2
/tmp/hdd/root/swapfile                  file            131064  12808   -3

/ # free
              total         used         free       shared      buffers
  Mem:       120616       119332         1284            0         1800
 Swap:       151568        33280       118288
Total:       272184       152612       119572

/ # /usr/local/etc/rzscontrol /dev/ramzswap0 --stats
DiskSize:          20480 kB
NumReads:          17269
NumWrites:          8517
FailedReads:           0
FailedWrites:          0
InvalidIO:             0
NotifyFree:            0
ZeroPages:           370
GoodCompress:         55 %
NoCompress:           41 %
PagesStored:        4748
PagesUsed:          2317
OrigDataSize:      18992 kB
ComprDataSize:      9196 kB
MemUsedTotal:       9268 kB

Параметр disksize_kb я подбирал экспериментально, т.к. при слишком большом его значении плеер довольно быстро зависает.
Монтирование /mnt/rd/swap.img в начале rsS отключать не советую, т.к. вы получите зависающий при загрузке плеер и придётся перешивать прошивку. :twisted:

Игрался с backing swap - создалось впечатление что compcache свопит одновременно в ОЗУ и на диск - в дисковый своп кладётся то что плохо сжимается, т.к. в статистике параметр NoCompress всегда равен 0%, а GoodCompress - 100%. Скрипт использования backing swap выглядят так:
Code: Select all
/sbin/insmod /usr/local/etc/ramzswap.ko num_devices=1 backing_swap=/tmp/hdd/root/swapfile memlimit_kb=20480
mknod /dev/ramzswap0 b `cat /proc/devices | sed -n 's/\([0-9]\+\) ramzswap/\1/p'` 0
swapon /dev/ramzswap0