A zRam, antigamente conhecida como compcache, e um recurso do kernel Linux que permite utilizar uma porcao da memoria RAM do sistema para armazenar dados compactados. Dessa forma, um numero maior de informacoes pode ser armazenado com a mesma quantidade de memoria, provocando o efeito aparente de aumento da quantidade de memoria disponivel.O uso da zRam no Linux depende de um modulo do kernel que ainda esta na arvore staging, portanto ainda nao e considerado estavel e nao vem instalado por padrao na maioria das distribuicoes Linux. No Fedora 17, e possivel instala-lo e integra-lo ao sistema de maneira relativamente simples, e o processo voce confere aqui.ATENCAO: os procedimentos abaixo foram testados no Fedora 17 x86_64 e podem nao funcionar em versoes diferentes do Fedora ou em outras distribuicoes. Para instrucoes mais genericas, recomendo este artigo do IBM developerWorks.Primeiramente, certifique-se de ter habilitado o repositorio de pacotes RPM Fusion. Basta instalar o pacote rpmfusion-free-release-stable.noarch.rpm com o comando rpm e depois usar o Yum para instalar o pacote kmod-staging:# rpm -Uvh rpmfusion-free-release-stable.noarch.rpm# yum -y install kmod-stagingATENCAO: Quando instalar o pacote kmod-staging, observe se o pacote kernel sera atualizado. Se for, sera necessario reiniciar o computador, iniciando o Fedora com a versao mais recente do kernel Linux recem-instalada.Concluida essa etapa, verifique se o modulo zram esta disponivel:$ modinfo zramfilename: /lib/modules/3.5.2-3.fc17.x86_64/extra/staging/zram.kodescription: Compressed RAM Block Deviceauthor: Nitin Gupta license: Dual BSD/GPLdepends: vermagic: 3.5.2-3.fc17.x86_64 SMP mod_unload parm: num_devices:Number of zram devices (uint)Em caso positivo, carregue o modulo e veja se o dispositivo /dev/zram0 e criado:# modprobe zram# ls -l /dev/zram0brw-rw----. 1 root disk 252, 0 Ago 27 10:51 /dev/zram0Em seguida, configure a quantidade de memoria RAM que sera disponibilizada para o dispositivo de memoria compactada. Voce pode utilizar ate 100% do total de memoria RAM disponivel, entretanto e interessante que voce deixe um espaco que nao utilize compactacao, que possa ser usado para gravar dados de processos de alta prioridade. Esse espaco pode ser igual ao definido pelo parametro do kernel vm.min_free_kbytes, que pode ser visto com o comando sysctl:$ sysctl vm.min_free_kbytesvm.min_free_kbytes = 67584O valor acima precisa ser multiplicado por 1024 para ser convertido em bytes, e entao o subtraimos do total de memoria RAM disponivel no sistema. Para poupar o seu tempo, o comando abaixo calcula e exibe o tamanho ideal da area de memoria compactada :$ echo $(( $(free -b | sed -n 2p | awk '{ print $2 }') - $(sysctl vm.min_free_kbytes | awk '{ print $3 }') * 1024 ))4031680512Anote o valor mostrando na tela e grave-o no arquivo /sys/block/zram0/disksize:# echo 4031680512 > /sys/block/zram0/disksizePara concluir, configure o dispositivo /dev/zram0 para ser uma unidade de area de troca (memoria virtual ou swap) e habilite-a com alta prioridade:# mkswap /dev/zram0# swapon -p 1024 /dev/zram0Uma vez que a zRam tenha sido habilitada, o sistema continuara utilizando a memoria da mesma maneira, isto e, gravara todos os dados na memoria ate que nao haja mais espaco disponivel. Quando isso acontecer, o sistema movera os dados menos utilizados para a area de troca (swap). So que agora, a area de troca nao esta mais no disco rigido e