Sistema de arquivo de memória virtual TMPFS no Linux

Sistema de arquivo de memória virtual TMPFS no Linux
TMPFS, anteriormente conhecido como shmfs, é um sistema de arquivos temporário e refere -se a um sistema de arquivos localizado na memória e/ou nas partições de troca. O TMPFS não armazena os dados do arquivo em armazenamento normal e não volátil. Em vez.A principal razão pela qual o TMPFS foi criado foi melhorar o desempenho, permitindo que os arquivos temporários fossem gravados e lidos sem usar o disco ou a E/S de rede.

Sobre o que vamos falar?

Neste artigo, veremos uma visão geral do sistema de arquivos TMPFS no Linux.

Vantagens de usar o sistema TMPFS

O antigo sistema de arquivos de memória de acesso aleatório (RAMFS) no Linux foi substituído pelo novo sistema de arquivos temporários (TMPFS). Isso ocorre porque os antigos Ramfs não abordaram as situações corretamente quando o sistema ficou fora de RAM.

Os diretórios de montagem como TMPFs têm vários benefícios, como:

1. Para acelerar o acesso aos arquivos dentro deles.

2. Para garantir que toda vez que o sistema reinicie, o conteúdo dos diretórios é excluído automaticamente.

3. O TMPFS aumenta a taxa de manipulação de arquivos enquanto preserva a semântica de um arquivo Unix.

4. O TMPFS não precisa do espaço de disco fixo ou dedicado para arquivos e não tem efeitos adversos no desempenho.

Em vez de utilizar a memória física dedicada como um "disco RAM", o TMPFS armazena os dados do arquivo no cache da página de um sistema operacional. Isso facilita a leitura e a gravação dos arquivos, permite que o sistema de arquivos cresça e diminua em tempo real sem usar nenhum espaço em disco e não prejudica o desempenho geral do sistema.

Montagem TMPFS

Use o comando de montagem e escolha "TMP" como o tipo de sistema de arquivos para criar um sistema de arquivo TMPFS Type. Como o TMPFS sempre utiliza a memória como o recurso do sistema de arquivos, o parâmetro de recurso a ser montado (e.g. dispositivo bruto) é desconsiderado. Como o TMPFS sempre usa a memória como o recurso do sistema de arquivos, o parâmetro de recursos para montagem (como dispositivo bruto) não é levado em consideração.

Atualmente, o TMPFS não tem opções de montagem. Muitas opções regulares de montagem não são relevantes para o contexto do TMPFS. Por exemplo, fazer um tmpfs montar "somente leitura" não faz sentido, pois eles não possuem nenhum dado quando são montados pela primeira vez. O TMPFS suporta todos os tipos de arquivos, que também incluem os arquivos de dispositivos especiais do Symlinks, Block and Caracter - Semântica do arquivo Unix. Embora possa haver muitos sistemas de arquivos baseados em TMPFs montados em um sistema, todos eles precisam compartilhar o mesmo pool de recursos.

Como o conteúdo de um sistema de arquivos baseado em memória é limpo após uma reinicialização do sistema ou operação desmontada, e porque esses arquivos têm vidas muito curtas, /tmp ié o local mais adequado para eles (assim conhecido como TMPFS). Isso indica isso /usr/tmp não é um local apropriado para montar um sistema de arquivos TMPFS porque seu conteúdo é retido entre as reinicializações.

Tamanho do TMPFS

A quantidade de espaço livre que pode ser usado pelo TMPFS é diretamente proporcional à quantidade de espaço de troca não utilizado. O tamanho de um sistema de arquivos TMPFS se expande para ajustar os arquivos que são adicionados a ele, mas os usuários que usam regularmente o TMPFS devem estar cientes de que esse crescimento vem com alguns custos inerentes. O TMPFS compartilha seus recursos com os segmentos de dados e pilhas de programas que estão sendo executados.

Se os sistemas de arquivos TMPFS estiverem próximos de sua capacidade máxima permitida, é possível que a execução de programas muito grandes seja impactada. O TMPFS pode atribuir todo o espaço de troca do sistema, com exceção de 4 MB. Isso é suficiente para garantir que a maioria dos programas possa executar. No entanto, é possível que certos programas não possam executar se os sistemas de arquivos TMPFS estiverem próximos da capacidade total. Os usuários que planejam executar os grandes programas e usam extensivamente o TMPFS devem procurar maneiras de aumentar o espaço de troca disponível no sistema.

Usos do TMPFS

Os usos do TMPFS incluem:

1. Sempre há uma montagem interna no kernel que não pode ser visto. Sysv compartilhou a memória e os mapeamentos anônimos compartilhados utilizam o TMPFS. O montagem tmpfs é independente do config_tmpfs. A parte visível do usuário do TMPFS não será criada se o config_tmpfs não estiver definido. No entanto, existem mecanismos internos o tempo todo.

2. POSIX Memória compartilhada (shm_open, shm_unlink) requer que os tmpfs sejam montados em /dev /shm para versões glibc 2.2 e acima. Isso pode ser resolvido incluindo a seguinte linha no arquivo /etc /fstab:

tmpfs /dev /shm tmpfs padrão 0 0

Se necessário, crie o diretório onde deseja montar o TMPFS.

A memória compartilhada usada pelo SYSV não precisa da montagem do TMPFS. Isso é feito com a montagem interna. Para usar a memória compartilhada SYSV no 2.3 versões do kernel, SHM FS (o antecessor do TMPFS) teve que ser montado.

3. É realmente útil para alguns usuários montá -lo em locais como /tmp e /var/tmp e tenha um disco de troca considerável. Além disso, as montagens de loop dos arquivos tmpfs agora estão funcionais. Assim, a maioria das distribuições de Mkinitrd deve operar com um TMPFS.

4. E há muitos para listar.

Opções de montagem para TMPFs

Vamos explorar algumas das opções de montagem com o TMPFS:

tamanho: Isso especifica o número máximo de bytes que podem ser usados ​​para uma instância do TMPFS. Por padrão, apenas metade da RAM física pode ser usada sem espaço de troca.

Se as instâncias do TMPFS forem maiores do que precisam, a máquina ficará presa em um impasse porque o manipulador de OOM não será capaz de liberar essa memória.

NR Blocks: É o mesmo que a opção de tamanho. No entanto, está em blocos de page_cache_size.

nr inodes: É o limite superior dos inodos para esta instância. O valor padrão é metade do número de páginas físicas de RAM ou o número de páginas de Ram Lowmem (em um sistema com Highmem), o que for menos.

Conclusão

Normalmente, os arquivos TMPFS são excluídos nas reinicializações do sistema. Mas se você quiser preservá-los, pode usar o Systemd-tmpfiles. Recomendamos que você leia as páginas do homem se quiser saber mais sobre o TMPFS.