среда, 24 априла, 2024
Представљамо

zRam

Аутор: Никола Ненадић

zRam (стари назив compcache или zswap) је експериментални модул додат у верзији линукс кернела 3.8-rc1. Модул је пре свега намењен старијим рачунарима али налази велику примену и данас на пољу преносних уређаја и мобилних телефона.

О чему се овде ради? zRam модул компресује блокове у радној меморији који се не користе, одакле их смешта назад у радну меморију. На тај начин избегава смештање paging блокова на тврди диск. Пошто је радна меморија далеко бржа од оне на тврдом диску, приметићете повећање перформанси.

zRam ће радити све док се радна меморија не напуни а касније модул се неће палити а подаци ће се надаље пребацивати на swap диск, као при стандардном paging процесу.

Можда вам звучи чудно да нешто компресујете, снимате, па затим декомпресујете и да тиме добијате већу брзину од једноставног копирања и преузимања са тврдог диска. Тестови су показали управо то. Комбинација брзине процесора и радне меморије даје боље резултате него једноставно копирање paging блокова на тврди диск.

Ако ово примените на старијим уређајима средње класе са 512 MB радне меморије, са добро подешеном swap партицијом (swap би по неписаном правилу требало да буде два пута већи од количине радне меморије), добићете значајно побољшање перформанси.

Кориснику је остављено да изабере колико процената радне меморије zRam може да користи.

Блокови се компресују помоћу LZO library који је имплементиран у linux-kernel.

Карактеришу га следеће особине:

  • компресија је упоредива са DEFLATE компресијом (користи комбинацију LZ77 алгоритма и Huffmanovo кодирање, осмишљено давне 1951. године,
  • веома брза декомпресија,
  • захтeва додатни buffer при компресији (8 KB до 64 KB), зависно од нивоа компресије
  • не захтева додатну меморију при декомпресовању (потребан је само излаз и buffer)
  • допушта кориснику да балансира између нивоа и брзине компресије а да не утиче на брзину декомпресије.

Имајте на уму да је модул још у фази развоја, те да ће се стварна функционалност постићи тек када модул добије званично место у kernel-tree.

Изворни код пројекта можете да пронађете на: http://lxr.hpcs.cs.tsukuba.ac.jp/#linux/drivers/staging/zram.

Ту можете наћи и упутство како да испробате овај експериментални модул на свом рачунару.

Постоји још један сличан модул, звани rapiddisk, који ради исту ствар. На вама је да одлучите који ћете изабрати.