Pular para o conteúdo
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.

Perguntas frequentes

What is What is a tmpfs??
A tmpfs puts files in RAM rather than on persistent storage. Reads and writes are extremely fast, but everything vanishes when the system reboots or the mount is removed. On Unix, locations like /tmp or /dev/shm are often backed by tmpfs. In CI, a tmpfs can dramatically speed up build steps that thrash the filesystem.
What a tmpfs is?
A tmpfs is an in-memory filesystem. Files written to it live in RAM (spilling to swap if needed), so access is fast, but the contents do not survive a reboot or unmount.

Guias relacionados