četvrtak, 18 aprila, 2024
Predstavljamo

zRam

Autor: Nikola Nenadić

zRam (stari naziv compcache ili zswap) je eksperimentalni modul dodat u verziji linuks kernela 3.8-rc1. Modul je pre svega namenjen starijim računarima ali nalazi veliku primenu i danas na polju prenosnih uređaja i mobilnih telefona.

O čemu se ovde radi? zRam modul kompresuje blokove u radnoj memoriji koji se ne koriste, odakle ih smešta nazad u radnu memoriju. Na taj način izbegava smeštanje paging blokova na tvrdi disk. Pošto je radna memorija daleko brža od one na tvrdom disku, primetićete povećanje performansi.

zRam će raditi sve dok se radna memorija ne napuni a kasnije modul se neće paliti a podaci će se nadalje prebacivati na swap disk, kao pri standardnom paging procesu.

Možda vam zvuči čudno da nešto kompresujete, snimate, pa zatim dekompresujete i da time dobijate veću brzinu od jednostavnog kopiranja i preuzimanja sa tvrdog diska. Testovi su pokazali upravo to. Kombinacija brzine procesora i radne memorije daje bolje rezultate nego jednostavno kopiranje paging blokova na tvrdi disk.

Ako ovo primenite na starijim uređajima srednje klase sa 512 MB radne memorije, sa dobro podešenom swap particijom (swap bi po nepisanom pravilu trebalo da bude dva puta veći od količine radne memorije), dobićete značajno poboljšanje performansi.

Korisniku je ostavljeno da izabere koliko procenata radne memorije zRam može da koristi.

Blokovi se kompresuju pomoću LZO library koji je implementiran u linux-kernel.

Karakterišu ga sledeće osobine:

  • kompresija je uporediva sa DEFLATE kompresijom (koristi kombinaciju LZ77 algoritma i Huffmanovo kodiranje, osmišljeno davne 1951. godine,
  • veoma brza dekompresija,
  • zahteva dodatni buffer pri kompresiji (8 KB do 64 KB), zavisno od nivoa kompresije
  • ne zahteva dodatnu memoriju pri dekompresovanju (potreban je samo izlaz i buffer)
  • dopušta korisniku da balansira između nivoa i brzine kompresije a da ne utiče na brzinu dekompresije.

Imajte na umu da je modul još u fazi razvoja, te da će se stvarna funkcionalnost postići tek kada modul dobije zvanično mesto u kernel-tree.

Izvorni kod projekta možete da pronađete na: http://lxr.hpcs.cs.tsukuba.ac.jp/#linux/drivers/staging/zram.

Tu možete naći i uputstvo kako da isprobate ovaj eksperimentalni modul na svom računaru.

Postoji još jedan sličan modul, zvani rapiddisk, koji radi istu stvar. Na vama je da odlučite koji ćete izabrati.