Raspberry Pi – Cache na memória invés de escrita no SD

memoria

Uma coisa que sempre reafirmo é a fragilidade do cartão de memória. Muita escrita no micro SD do raspberry não é uma boa ideia, e isso é por mais de um motivo. Primordialmente pela preservação do dispositivo de memória, mas também por se tratar de um dispositivo lento, que pode gerar gargalos (e gera) em outros barramentos. Um exemplo muito bom pra isso pode ser visto no post sobre servidor de câmera com Raspberry. Se as imagens geradas fossem armazenadas em disco, certamente afetaria o I/O da ethernet, uma vez que um ciclo da operação de consulta trata de estabelecer conexão, requisitar os dados, então a câmera é acionada, a imagem captura e escrita no SD e posteriormente transportada em rede. Maiores detalhes no post supracitado.

Tudo tem prós e contras. De contra, obviamente a memória RAM é volátil, portanto não tem como fazer persistência de dados. Se você precisa preservar a informação gerada (seja lá por qual meio for), será obrigado a escrever no SD.

Mas como escrever dados na memória como se fosse um componente comum da árvore de diretórios do sistema operacional? – A resposta é simples e tem mais de uma possibilidade.

tmpfs

O próprio nome já diz tudo. Trata-se de um diretório temporário em memória, cujo tamanho da memória você pode reservar através da linha de comando. O processo é bastante simples:

Pronto, aí está seu diretório de escrita super-rápida! Provavelmente você já terá alguma coisa em outro diretório como o /dev/shm (que na documentação do kernel afirma que a partir da glibc 2.2 espera-se que seja montado nesse diretório).

Você pode fazer persistência desse recurso a cada boot (lembrando que os dados contidos em RAM serão perdidos em caso de reinicio do sistema) adicionando-o a algum rc ou no /etc/fstab:

O tamanho pode ser qualquer um que a memória comporte. Agora, vamos à segunda opção.




ramfs

A ramfs surgiu depois do ramdisk. O ramdisk é bastante problemático (não vou entrar no assunto) e o ramfs veio para corrigir as imperfeições de seu precursor.

Para montá-lo, é tão simples quanto o tmpfs:

E também pode adicioná-lo a algum rc ou em /etc/fstab:

Quanta RAM disponível eu tenho pra usar?

Claro que você pode utilizar o comando free após o boot do sistema e ver quanto há de memória livre, então selecionar a porção que achar devida. Ou ainda, pode especificar em porcentagem utilizando:

Isso reservará 15% da memória livre.

Esse post foi escrito com o propósito de ser auxiliar ao post sobre servidor de câmera com Raspberry, para que não ficasse um texto muito extenso. Se você leu até aqui, acho que vale a pena sugerir que leia também esse post.

Siga-nos no Do bit Ao Byte no Facebook.

Prefere twitter? @DobitAoByte.

Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Próximo post a caminho!




Comments

comments

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.

Deixe uma resposta