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 отключать не советую, т.к. вы получите зависающий при загрузке плеер и придётся перешивать прошивку.
Игрался с 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