Crie um "RAMDisk" em sua distribuição Linux

Ícone RAMDisk

Como você sabe, a velocidade de acesso de uma memória é muito importante. Os gargalos gerados no passado entre memórias magnéticas e processadores significavam que uma memória buffer mais rápida tinha que ser incluída, RAM. Mais tarde, com o avanço dos microprocessadores, veio o cache, ainda mais rápido para oferecer um buffer entre a RAM e os registradores da CPU. Mais recentemente surgiram os discos rígidos SSD, que são mais rápidos do que os HDDs magnético-mecânicos, pois são baseados em memória flash.

A Gigabyte pensou há alguns anos em criar um disco rígido com RAM (um RAMDisk chamado i-RAM), uma memória muito rápida em comparação com os discos rígidos, mas algo semelhante aconteceu ao que aconteceu com a Ageia com seu cartão PhysX. Eles realmente não se formaram e acabaram desaparecendo do mercado, e agora com SSDs (e SSDs baseados em RAM) faz ainda menos sentido. Sobre o que é isso? Bem, basicamente é usar memória RAM para armazenar dados como se fosse um disco rígido, então o acesso é muito mais rápido.

Bem, você não precisa de um i-RAM ou SSD, ou qualquer coisa assim, para acelerar as transferências e o acesso aos diretórios, arquivos ou programas que deseja. Para isso você pode crie um RAMDisk em sua distribuição Linux. O único requisito é ter RAM suficiente,> 4 GB recomendado, para reservar um pouco para usar como um "disco rígido" ultrarrápido. Algo parecido com o que algumas GPUs para laptops faziam com Compartilhar memória, mas neste caso para seus dados.

Para criar esta memória, você deve calcular a memória que você tem, pois se você exaurir toda ou uma grande parte dela, você ficará sem RAM para os propósitos para os quais ela foi criada e ela será estúpida. Por exemplo, se você tem 8 GB de RAM, pode usar 2 GB para o RAMDisk. Repito, o problema dele é que você tem mais RAM, se tiver 2GB ou 4GB pode não valer a pena ... (lembre-se em "size =" especifique o tamanho, no meu exemplo optei por 1024MB, ou seja, 1 GB, ou você também pode usar "G" em vez de "M" para especificá-lo em GB) Depois de saber disso, começaremos a trabalhar com os passos seguintes do seu terminal:

mkdir /tmp/ramdisk

mount -t tmpfs none /tmp/randisk -o size=1024M

Agora você tem 1 GB reservado em sua RAM para que possa adicionar o que quiser ao diretório ramdisk que criamos. Faça testes de desempenho e você verá como é mais rápido tudo que você tem nele ... Se desejar, você pode criar a partição em sua RAM com outro sistema de arquivos diferente de tmpfs, como ext4 ou ramfs.

E se você quiser que a entrada de montagem permaneça… Cuidado !! Os dados que você salva aqui se desligar o PC ou reiniciar serão perdidos, mas a entrada permanecerápara que você não precise criar a partição a cada inicialização com o seguinte truque para adicioná-lo à tabela de partição (fstab) para que seja criado automaticamente (use seu editor de texto favorito para editar a entrada: vi, nano, gedit ...):

gedit /etc/fstab

Y en el fichero de texto que se abre crea la siguiente entrada sin comillas "tmpfs /mnt/ramdisk tmpfs nodev, nosuid, noexec, nodiratime, size=1024M 0 0"

IMPORTANTE: Lembre-se de que seus dados irão desaparecer quando você reiniciar ou desligar computador, uma vez que a RAM é uma memória volátil. Portanto, o que quer que você queira manter, faça uma cópia em uma partição do disco rígido.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Maurício dito

    Eu tenho uma pergunta, assim que desligarmos o equipamento, os dados continuarão na memória? Digo isso porque a RAM é volátil. Eu apreciaria se você pudesse me explicar isso.

    1.    Isaac PE dito

      Olá,

      Você está certo, esqueci de comentar no artigo que por ser volátil será excluído toda vez que você ligar o computador. Obrigado por me lembrar, já o adicionei. É algo muito importante que não deve ser esquecido para que ninguém perca seus dados.

      Felicidades e espero ter ajudado. Obrigado!!!

      1.    Maurício dito

        O que eu estava vendo é que existem programas que fazem essa partição. O que esses programas fazem é criar uma imagem no disco rígido dos dados que estão na RAM para que, ao reiniciarmos, eles não sejam perdidos. Então, ao iniciar o sistema, pelo que entendi, os dados salvos no disco rígido são despejados na RAM para que possamos usá-los novamente. Obrigado pela nota e por ter respondido rapidamente! Saudações!

  2.   Leopoldo Cantillo dito

    Interessante, é pensar em algumas aplicações práticas, um script que crie essa partição RAM no início e carregue os arquivos de interesse, não vai ser útil ... será útil colocar um banco de dados ...? você tem que investigar o assunto ... obrigado pela nota.

  3.   sultanovich dito

    pode funcionar apenas detalhando o fs. Em meus testes, funcionou apenas da seguinte maneira:

    mount -t tmpfs tmpfs / tmp / ramdisk -o size = 300m

  4.   Ismael dito

    Incrível as magnificências que podem ser feitas com GNU / LINUX. :)

  5.   Jimmy olano dito

    Que tal usarmos esse RAMDisk para a partição "tmp"?

    De poder, eu poderia, será necessário colocar código, não peço o código. Observo que para bancos de dados, embora me lembre bem, já existe uma opção para suportar tabelas de banco de dados em memória RAM, exemplo: https: // dev.mysql.com/doc /refman/5.5/en/ storage-engine -setting. html

  6.   Anônimo dito

    Se você tiver sorte e se arrastar durante os últimos 20 anos, poderá ter 64GiB de RAM e assim copiar o arquivo do disco rígido virtual do VirtualBOX (ou qualquer outra máquina virtual) para a RAM; Presumo que este arquivo não ocupe mais do que 48GiB (para deixar memória RAM livre suficiente para o Linux e para a máquina virtual). Desta forma a máquina virtual voa, e se você também deseja que as alterações na máquina virtual sejam perdidas (imutabilidade) não precisará mais perder performance em tornar o disco rígido virtual da máquina imutável, pois antes de iniciá-lo você copia ele do NVMe / SSD / HDD para a RAM e, em seguida, desligar o que quer que esteja na RAM é perdido (apenas o que é desejado neste caso, que é imutabilidade).

    Assim, com tanta RAM, você pode tornar a imagem do disco rígido não imutável e de tamanho fixo, obtendo o máximo desempenho possível no acesso, que juntamente com o fato de que o referido disco rígido estará na RAM, faz com que alguns delícias reais ao lidar com máquinas virtuais (apenas um snatch por vez).

    Que ao terminar de usar a máquina virtual, você deseja preservar o estado do disco rígido virtual, já que ele é copiado da RAM para o NVMe / SSD / HDD.

    Que eu vi que já existem alguns NVMe que são capazes de ler em velocidades um pouco acima de 5GiB / s (sim, cinco gigabytes por segundo em leitura) e que usar apenas um (em RAID0 ou similar seria ainda mais rápido), para copiar a imagem do disco rígido virtual 48GiB para a RAM leva apenas cerca de dez segundos, olé!
    Por contras, ao fazer o processo oposto (de RAM para NVMe), o mais rápido que vi por agora é um pouco mais de 3GiB / s por escrito (sim, três gigabytes por segundo por escrito), salvando assim a imagem de 48GiB virtual hard dirigir da RAM para o NVMe leva apenas cerca de dezoito segundos, novamente um grande olé!

    Teremos um dos NVMe mais rápidos e 64GiB de RAM com Linux e uma máquina virtual com, por exemplo, Windows 10, é um grande passo se a RAM for usada para hospedar o disco rígido da máquina virtual.

    E agora o presente para o Linux ... já existe um pacote chamado "ramroot" (pelo menos parece que para as distribuições baseadas em Arch) que durante a inicialização é responsável por copiar toda a raiz do sistema Linux para a RAM e continuar a inicializar da RAM, com a qual também obtemos imutabilidade no Linux que estamos usando, sem falar que rodará da RAM, ao custo de aumentar um pouco o tempo de boot.

    Se quem lê isso conhece as distros Linux inicializáveis ​​de CD / USB que são copiadas para a RAM durante a inicialização (como SystemRescueCD, etc), eles saberão os benefícios que oferece: Sempre inicia da mesma forma, sempre vai o mais rápido que pode porque tudo está na RAM, nada é gravado nos discos físicos durante a inicialização ou durante o uso do Linux (algo muito útil para estender a vida do SSD, pessoalmente em menos de um mês e com menos de um terabyte escrito, alguns SSDs já saíram me para funcionar, especificamente 120GB da marca KingDian), exceto obviamente se montarmos algo em read & write e salvar algo lá, combinando isso com a máquina virtual, o sistema 'voa' nos acessos ao disco, já que todos vão para a RAM.

    Ter todo o Linux na RAM aumenta muito a vida útil de SSDs e NVMe, já que nada ou quase nada é escrito neles durante a inicialização e, uma vez inicializado, absolutamente nada, a menos que nós mesmos o façamos.

    Meus testes foram em um Ryzen 7 2700X (4.35 GHz com 8 núcleos e 16 threads) com 64GiB DDR4 3200 MHz e 1050GiB NVidia 4 Ti Graphics.

    Nota: Existem placas-mãe que suportam até 1TiB de RAM e microfones de 64 threads como o ThreadRipper 2, etc.

  7.   Marcos dito

    Seu comentário é muito interessante, mas não devemos exagerar com a RAM necessária: Tenho uma imagem VDI do Windows 10 que pesa apenas 13 GB, com 14 GB de RAM funcionaria com total facilidade.

    Sobre a montagem de todo o sistema operacional na RAM, não estou muito claro se não é um pouco demais. Se você tem seu SSD formatado em BTRFS com compactação on-the-fly habilitada (consideravelmente menos dados são gravados na unidade), já que quase apenas os dados são gravados na partição do sistema quando os pacotes são instalados (que obviamente queremos permanecer no SSD / disco), os arquivos de configuração são modificados (arquivos de texto de tamanho insignificante, e a compressão LZO do BTRFS os deixa em um tamanho ainda mais insignificante) e pouco mais, porque parece um pouco para matar moscas com tiros de canhão; tenha em mente que todas as distros modernas motan / tmp em RAM se o usuário tiver mais de 4 GB, penso em RAM, então o SSD / disco não sofre o menor desgaste devido a muitas operações temporárias que são escritas, que foi o que mais cana eu coloquei na partição / alguns anos atrás.

    Outra coisa é a casa, lá os dados são constantemente gravados: caches, configurações que mudam de vez em quando se movemos uma janela, downloads, etc. Lá poderia ser interessante trabalhar apenas em RAM e sincronizar em disco apenas se realmente quisermos, embora deva haver alguma ferramenta (não sei se haverá, não ficaria surpreso, mas até ler seu comentário eu tenho não pensei no assunto) para lembrar ao usuário quando ele vai encerrar a sessão que há alterações em sua / casa sem salvar ou mesmo nos perguntar se queremos sincronizá-las para o disco, porque certamente na metade das vezes esqueceríamos e desligue o computador para nos ajudar na liderança meio segundo depois.

    "Existem placas-mãe que suportam até 1TiB de RAM e microfones com 64 threads, como o ThreadRipper 2, etc."

    Já, e racks que ainda suportam muito mais, mas não deixe a gente ir xD. Vamos voltar ao planeta Terra, onde as pessoas dificilmente podem pagar uma equipe de € 800 ...

    Saudações.

  8.   Marcos dito

    "Eu tenho uma imagem VDI do Windows 10 que pesa apenas 13 GB, com 14 GB de RAM funcionaria com total facilidade."
    Desculpe, quis dizer 24 GB. Meu dedo foi para a próxima tecla?