Skip to content
Latchkey

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.

Guias relacionados