O Que É um tmpfs? Um Sistema de Arquivos em Memória
Um tmpfs é um sistema de arquivos que armazena seus arquivos na memória (RAM) em vez de em um disco, tornando-o muito rápido, porém volátil.
Um tmpfs coloca arquivos na RAM em vez de em armazenamento persistente. Leituras e escritas são extremamente rápidas, mas tudo desaparece quando o sistema reinicia ou o mount é removido. No Unix, locais como /tmp ou /dev/shm frequentemente são respaldados por tmpfs. Em CI, um tmpfs pode acelerar dramaticamente etapas de build que sobrecarregam o sistema de arquivos.
O que é um tmpfs
Um tmpfs é um sistema de arquivos em memória. Arquivos escritos nele vivem na RAM (transbordando para swap se necessário), então o acesso é rápido, mas o conteúdo não sobrevive a um reboot ou unmount.
Velocidade versus persistência
Como não há disco envolvido, um tmpfs evita completamente a latência de disco, o que é ótimo para dados temporários e descartáveis. A contrapartida é a volatilidade: qualquer coisa que você precise manter deve ser copiada para outro lugar antes que o mount desapareça.
Onde você o encontra
- /tmp frequentemente é respaldado por tmpfs no Linux.
- /dev/shm é um tmpfs para memória compartilhada.
- Containers podem montar um tmpfs como espaço de rascunho.
A memória é o limite
Um tmpfs consome RAM, então escrever uma grande quantidade de dados nele pode esgotar a memória e disparar um out-of-memory kill. Seu tamanho é limitado pela memória disponível, ao contrário de um disco espaçoso.
tmpfs em CI
Builds e testes que fazem muita I/O temporária, como compiladores e suítes de teste, podem rodar visivelmente mais rápido quando seu diretório de rascunho fica em um tmpfs. O detalhe é a memória: um build que escreve gigabytes de dados temporários em tmpfs pode esgotar a RAM do runner.
Rascunho rápido em runners gerenciados
Nos runners da Latchkey, apontar o diretório temporário de um build para um tmpfs pode acelerar etapas limitadas por I/O, desde que o runner tenha memória suficiente. Dimensionar corretamente o runner dá o espaço necessário para aproveitar a velocidade sem um out-of-memory kill.
Principais conclusões
- Um tmpfs é um sistema de arquivos em memória: muito rápido, porém volátil.
- Locais como /tmp e /dev/shm frequentemente são respaldados por tmpfs.
- Em CI, o tmpfs pode acelerar etapas com muita I/O, mas é limitado pela RAM.