Manipulação de memória – Raspberry Pi / Banana Pi / Orange Pi

Manipulação de memória – Raspberry Pi / Banana Pi / Orange Pi

Existem duas memórias principais utilizadas em sistemas operacionais como por exemplo, Linux. Uma é conhecida como RAM (Random Access Memory) e a outra é  Swap (troca). Esse post discorre sobre o conceito e de que forma manipulá-las.

Memória RAM
 
A memória RAM é a memória principal do sistema operacional e ela deve ser no mínimo suficiente para carregar toda a base do sistema operacional. Isso significa que uma estrutura mínima deve estar na memória para que o sistema funcione; quando você move o mouse, seleciona um menu, passa por cima de algum icone e ele reage – tudo isso acontece em tempo real porque essa porção de programa está alocado em memória.
Estou entrando em minúncias porque é necessário reforçar esse entendimento antes de seguirmos com a interação de memórias, tenha paciência e desfrute da leitura.
Quando você clica para abrir um programa, ele demora a se abrir porque ele estava na memória de armazenamento, no caso do Raspberry Pi, no cartão SD. Mas se você fecha o programa e imediatamente o reabre, seu carregamento vai de muito mais rápido à imediato. Isso porque toda a estrutura de execução necessária já havia sido previamente carregada para a memória RAM e ainda não havia sido descartada.
Já que estamos no ponto que trata de descarte, vamos falar desse conceito. Quando um programa é carregado para a memória, a área necessária para seu funcionamento é reservada pelo sistema operacional e essa porção de memória é subtraida do total disponível, deixando assim menos espaço para outros aplicativos que porventura sejam posteriormente carregados. Quando se fecha um programa, essa memória torna-se novamente disponível para o sistema, porém ela não é imediatamente limpa, de forma que uma segunda carga do programa o reabre rapidamente. Somente quando a memória é requisitada ela vai sendo realocada, desse modo reduz-se o throughput no barramento.
Para saber quanta memória livre tem seu sistema no Raspberry Pi, em um terminal você deve digitar:
Desse resultado nós temos a linha “Mem:”, onde é mostrada a memória total, a memória usada, a memória livre, a memória compartilhada, buffers e reservada. Buffers e Cached são áreas de memória disponíveis para reaproveitamento, enquanto Free é memória livre que não foi alocada em momento algum. Daí você consegue estipular a demanda de memória para suas aplicações no Raspberry e por não ter memória expansível, você deverá customizar sua aplicação.
A memória RAM é inimaginavelmente mais rápida do que qualquer outra memória, de forma que se o sistema pudesse ser alocado nela, sua inicialização seria tão rápida quanto acender uma lâmpada, mas como não chegamos a esse ponto, pode-se ainda tirar algum proveito extra desse recurso, caso você ainda o tenha disponível em seu sistema.
Nesse post mostro duas maneiras de utilizar a memória RAM como área da memória de armazenamento – no caso, o cartão micro-sd. Isso ajuda a poupar a vida útil do cartão, mas fragiliza a informação, porque no caso de um desligamento abrupto do sistema, esses dados alocados em RAM serão perdidos.
Memória Swap (ou memória virtual)
 
A swap é uma área de troca, chamada memória de paginação. Ela é configurável tanto em tamanho quanto o momento em que seu uso deve ser iniciado. Isso significa que o sistema começa seu trabalho apenas tornando-a disponível e passa a utilizá-la quando os recursos de RAM estiverem a determinado ponto de seu esgotamento.
Você pode determinar o tamanho dessa área de troca durante o particionamento ou pode fazer a paginação em arquivo. No caso do Raspberry, a manipulação do particionamento torna-se um pouco mais difícil para iniciantes, mas você pode também fazer a paginação em um pendrive. Para tal, você precisará criar uma partição do tipo 0x82 (Linux swap) com o aplicativo fdisk através de alguma GUI que faça front-end para qualquer aplicativo de manipulação de memória de armazenamento. Após isso, deve-se formatar essa partição com o aplicativo mkswap.
Se desejar criar a swap em arquivo, ou se achar insuficiente a swap já disponibilizada pelo Raspberry, pode fazê-lo como swap adicional.
Criando swap em arquivo
Para criar a swap em arquivo, utiliza-se o comando dd e o dispositivo zero:

Um arquivo de 100MB será criado (105 mais precisamente). Posteriormente, deve receber a estrutura de swap:

A partir de agora esse arquivo já pode ser utilizado como memória, bastando “montá-lo”:
Todo o processo e confirmação pode ser visto nessa imagem:
Agora, uma coisa importante deve ser levada em consideração. A memória RAM é a mais rápida do sistema, como citado anteriormente. Se precisar usar a swap pra paginar, tenha certeza de que as coisas no sistema não vão bem. Se você tiver que usar esse recurso de expandir a swap, então as coisas estão piores do que se pode imaginar, mas sem dúvida, é uma solução paleativa, mas não faça uso desse recurso como se fosse a solução do seu problema, porque na verdade isso se tornará outro problema.
A swap é utilizada para armazenar informações que já não cabem mais na RAM. Os dados extremamente dinâmicos ficam sendo processados na RAM enquanto o cache vai sendo despejado para a swap. Isso gera uma lentidão enorme no sistema e consequentemente outros recursos serão sacrificados, como processamento e throughput dos barramentos.
Ainda sendo necessária, você pode disponibilizar sua swap logo após a carga da raiz do sistema operacional, colocando a referência no arquivo /etc/fstab:
Por padrão, o Raspberry Pi só inicia a utilização da swap quando restar apenas 1% da memória RAM. Essa definição é feita no arquivo /etc/sysctl.conf:
Em outro post vamos ver um pouco sobre tunning do sistema, onde um dos arquivos será o sysctl.conf, então é só aguardar. Gostou do artigo?
Djames Suhanko gosta de tomar weirnsteiner. Dono de uma cabeleira estonteante, Djames se desdobra em mil entre esculturas de celebridades em grãos de arroz, seu curso de alinhamento de fotons e seu site:
Finais de semana ele gosta de tocar violão, clarinete,  e passar vaselina nos botões do elevador pros vizinhos ficarem com nojo.
Visite seu site e também Cadastre-se em seu canal do Youtube.

Related Post