Usar SSD como RAM?


13

Como posso usar o espaço em disco SSD como RAM para executar tarefas de memória grande no Raspberry Pi? Isso é o mesmo no Linux que cria "ramdisk" de acordo com as perguntas e respostas ?


4
Resposta curta é: não é possível! Você pode usá-lo como um disco de troca ou manter os arquivos temporários, mas não pode estender sua RAM usando a unidade. Isso simplesmente não é possível.
Piotr Kula 28/05

3
Tente usar o GParted para formatar seu SSD com uma linux-swappartição e, em seguida, execute sudo swapon /dev/sda1(ou seja qual for a partição de troca). O Ramdisk usa sua RAM como armazenamento, o espaço de troca é basicamente o oposto - use o armazenamento como RAM.
JamesTheAwesomeDude

Respostas:


8

Eu suponho que você quer dizer SD em vez de SSD? Criar uma partição Swap no cartão SD deve funcionar como um tipo de RAM para a unidade.

Se você quer dizer SSD, não existe uma maneira verdadeira de conectar uma unidade SSD ao Pi em primeiro lugar. Se você estiver se conectando por USB, não haverá um grande aumento, nem mesmo um disco rígido normal conectado externamente pode funcionar a toda velocidade.


7

Isso não é possível.

A memória do Raspberry Pi está fixada na placa e não há interface para estendê-lo ou substituí-lo.

Eu acho que a confusão vem do fato de o SSD (Solid State Disk) estar usando chips de memória para armazenar os dados. Mas é aí que as semelhanças terminam. Os chips de memória no SSD são muito diferentes da RAM normal. Não é possível substituir um pelo outro.

O SSD possui uma interface de disco SATA. A RAM possui uma interface de barramento de memória. Eles são tão diferentes, que a melhor analogia que posso oferecer é como comparar um forno a gás a um microondas.

Tentei simplificar as informações a seguir, portanto, para quem estiver lendo isso com uma compreensão mais profunda, lembre-se de que este é apenas um resumo de nível muito alto:

Os chips SSD são de memória Flash e têm uma capacidade de armazenamento não volátil, semelhante aos discos USB. Isso significa que eles podem reter seus dados mesmo sem energia. Eles também precisam de um chip controlador especial para conversar com eles. Este chip está conectado a uma interface de disco SATA e segue o protocolo SATA. Na minha analogia, o SSD é o forno a gás e o barramento SATA é o suprimento de gás para a casa.

Os chips de RAM típicos são conhecidos como DRAM, ou seja, RAM dinâmica (também conhecida como DDR SDRAM, etc). Eles armazenam dados por um período muito curto, o que torna necessário levá-los para off-line (desconecte esses chips do restante dos circuitos) para atualizar seus dados armazenados. Isso acontece várias centenas ou milhares de vezes por segundo e é transparente para o usuário. Se a energia desligar, essa atualização será interrompida e seus dados serão perdidos para sempre. Os chips de RAM dinâmica seguem um protocolo completamente diferente dos chips de memória Flash e se conectam a um controlador de memória dinâmico, que por sua vez, se conecta a um barramento de memória de velocidade muito alta. Este barramento de memória vai diretamente para o coração do chip da CPU. Na minha analogia, a RAM dinâmica é o forno de microondas e o barramento de memória de alta velocidade é o fornecimento de energia elétrica.

A CPU do Rapsberry Pi possui uma conexão especial para a RAM e nada além da RAM dinâmica pode se conectar a ela. As conexões SATA e USB são mantidas separadamente.

Portanto, embora ambos façam o mesmo trabalho (código e dados de armazenamento de SSD e RAM, fogões a gás e microondas cozinham alimentos e aquecem refeições), eles fazem esse trabalho de maneiras completamente diferentes e incompatíveis. Um não pode ser substituído pelo outro.

Finalmente, o disco RAM é um truque do sistema operacional que finge que parte da RAM disponível é na verdade um disco de armazenamento. Isso reduz a RAM disponível, como muito corretamente o lenik aponta em sua resposta.


1
E quando o Windows (Ready Boost) permite que você use Drives Flash como RAM extra, isso funcionaria? Ou é como tentar adicionar SWAP que não fará a diferença esperada no desempenho?
Rhymsy # 26/18

O ReadyBoost no Windows não funciona como RAM, consulte Wikipedia: en.wikipedia.org/wiki/ReadyBoost . Em resumo: ReadyBoost é uma solução de cache de disco para acelerar discos mais lentos. Normalmente, isso envolve copiar dados de discos giratórios para unidades flash para reduzir o tempo de acesso a dados.
Vassilis Papanikolaou

3

Adicionando swap ao Raspberry Pi

Você pode usar um arquivo de troca ou uma partição de troca. Se você decidir usar uma partição swap, leia com atenção, pois não deseja arruinar nenhum dado importante.

Criando arquivo de troca

  • dd if=/dev/zero of=/SWAPFILE bs=1024 count=524288
    • Isso criará um arquivo em branco de 512 MB.
    • Mude a contagem = para o seu tamanho preferido.
  • chown root:root /SWAPFILE
  • chmod 0600 /SWAPFILE
  • mkswap /SWAPFILE
  • swapon /SWAPFILE

Criando partição de troca

  • dd if=/dev/zero of=/dev/sdXN bs=1024
    • Isso preencherá toda a partição do / dev / sdXN
  • mkswap /dev/sdXN
  • swapon /dev/sdXN

Persistente na inicialização (adicione / etc / fstab)

  • vim /etc/fstab
  • Adicione:
    • / SWAPFILE troca padrões de troca 0 0
    • Padrões de troca de troca / dev / sdXN 0 0

Teste se está ativo

  • free -m

1
Embora os SSDs sejam rápidos e possam ser bons para trocar espaço, lembre-se de que os dados podem ser gravados apenas um número limitado de vezes.
earthmeLon

Não esqueça que você está otimizado através da interface USB2, portanto o SSD será inferior a 10% da sua velocidade nativa. Realmente não acho que você precise se preocupar em apagar o flash por acidente.
John La Rooy

1

O disco RAM é totalmente oposto ao que você deseja fazer. ele cria um disco na RAM, quando você precisa de velocidade extra e não se importa com a memória.

usando SSD como RAM ... não sei, talvez crie uma partição swap no SSD e deixe-a trocar por lá.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.