English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Explicação detalhada do tempfs no sistema Linux/dev/shm

O tmpfs é o Linux/Um sistema de arquivos baseado em memória em sistemas Unix, ou seja, o tmpfs usa memória ou partitions de troca para armazenar arquivos.

O subsistema VM do núcleo do Linux é responsável por gerenciar recursos de memória virtual em segundo plano, ou seja, recursos de memória RAM e swap, movendo transparentemente páginas de RAM para a partição de troca ou de partição de troca para páginas de RAM, o sistema de arquivos tmpfs precisa de páginas do subsistema VM para armazenar arquivos. O tmpfs não sabe onde essas páginas estão na partição de troca ou na RAM; tomar essa decisão é a tarefa do subsistema VM. O que o sistema de arquivos tmpfs sabe é que ele está usando algum tipo de memória virtual.

Devido ao fato de que o tmpfs é baseado em memória, sua velocidade é relativamente rápida. Além disso, os recursos VM usados pelo tmpfs são dinâmicos, ao excluir arquivos do tmpfs, o driver do sistema de arquivos tmpfs diminui dinamicamente o tamanho do sistema de arquivos e libera recursos VM, claro, ao criar arquivos no tmpfs também haverá alocação dinâmica de recursos VM. Além disso, o tmpfs não possui persistência, os dados não são mantidos após o reinício.

/dev/shm é um dispositivo baseado em tmpfs, em algumas distribuições do Linux /dev/shm é /run/shm/ É um link simbólico do diretório. Na verdade, em muitos sistemas /run é montado como tmpsf. Usando df -T Pode ver o estado de montagem de discos no sistema:

Sistema de arquivos  1K-bloco Usado Disponível Usado% Ponto de montagem
udev  1859684 4 1859680 1% /dev
tmpfs  374096 1524 372572 1% /run
/dev/sda8 76561456 36029540 36619724 50% /
none   4 0 4 0% /sys/fs/cgroup
none  5120 0 5120 0% /run/lock
none  1870460 27688 1842772 2% /run/shm
none  102400 56 102344 1% /run/user

Então, vamos falar primeiro /O diretório run. Agora que sabemos, o diretório é baseado em memória, na verdade, seu antecessor era /var/O diretório run, mais tarde /run. Isso acontece porque /var/O sistema de arquivos run não está pronto desde o início da inicialização do sistema, e antes disso, os processos que já foram iniciados guardam suas informações de execução /No diretório dev/O diretório dev também é um tmpfs e está disponível desde o início da inicialização do sistema. Mas /O design original do diretório dev era para armazenar arquivos de dispositivo, não para armazenar informações de execução do processo, então para não causar confusão/Os arquivos que armazenam informações de processo no diretório dev começam com ".", ou seja, são pastas ocultas. Mesmo assim, à medida que o número de pastas aumenta,/O diretório dev está cada vez mais confuso, então foi introduzida uma solução alternativa, ou seja /run. Na verdade, em muitos sistemas /var/O diretório run ainda existe, mas /É um link simbólico do diretório run.

/var/O diretório run armazena principalmente arquivos que descrevem informações do sistema desde o início da inicialização do sistema. Uso comum é que os processos daemon guardem seu pid neste diretório.

/dev/shm/ É um diretório muito útil no Linux, que significa Shared memory, ou seja, memória compartilhada. Devido a isso, todos os processos do sistema podem compartilhar esse diretório. Pelo padrão, seu tamanho é metade da memória. Se desejar alterar seu tamanho, você pode gerenciar com mount:

mount -o size=4000M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm

Se desejar que isso seja eficaz permanentemente, você pode modificar /etc/Arquivo fstab:

tmpfs /dev/shm tmpfs defaults,size=4G 0 0

Utilizando /dev/shm pode fazer muitas coisas, aqui está um exemplo de aplicação Python. Ao usar Python para processamento de dados, pode usar numpy, geralmente com grandes volumes de dados durante o processamento de dados. Se vários processos precisarem usar os mesmos dados, então /dev/shm entra em ação, ou seja, usa a tecnologia de memória compartilhada. O Python tem uma biblioteca de terceiros que pode ser usada para compartilhar arrays numpy entre múltiplos processos, chamada SharedArray. O SharedArray é baseado em /dev/shm, e usa o padrão POSIX, podendo ser compatível com várias plataformas.

Resumo

Isso é tudo que há neste artigo. Espero que o conteúdo deste artigo ajude a sua aprendizagem ou trabalho. Se tiver alguma dúvida, você pode deixar um comentário para trocar. Obrigado pelo apoio ao tutorial de clamor.

Declaração: O conteúdo deste artigo é proveniente da Internet, pertencente ao respectivo proprietário. O conteúdo é contribuído e carregado voluntariamente pelos usuários da Internet. Este site não possui direitos de propriedade, não foi editado manualmente e não assume responsabilidades legais relacionadas. Se você encontrar conteúdo suspeito de direitos autorais, por favor, envie um e-mail para: notice#oldtoolbag.com (ao enviar e-mail, substitua # por @) para denunciar, e forneça provas relevantes. Assim que confirmado, o site deletará imediatamente o conteúdo suspeito de infringir direitos autorais.

Você também pode gostar