O que define o tamanho do tmpfs? O que acontece quando está cheio?

16

O que define o tamanho do tmpfs ? (Na minha máquina reside em /dev/shm ) Eu posso ver sua entrada em /etc/fstab , mas nenhuma notação de seu tamanho. Ao verificar com df -h , parece ser metade do tamanho da memória física instalada no sistema. Este é o comportamento padrão?

Além disso, o que acontece se ficar cheio? Ele expande dinamicamente forçando outros programas em execução em swap ? O tmpfs se move para a partição swap ?

Finalmente, o que tem prioridade na memória tmpfs ou aplicativos? ou seja, se eu tiver tmpfs suficientemente cheio (como 40% da memória física) e eu tiver programas que requeiram 70% da memória física, qual deles recebe a prioridade?

    
por Bichoy 23.05.2015 / 04:01

1 resposta

15

What sets the size of the tmpfs? (On my machine it resides in /dev/shm) I can see its entry in /etc/fstab, but no notation of its size.

A documentação do kernel aborda isso abaixo das opções de montagem:

size: The limit of allocated bytes for this tmpfs instance. The default is half of your physical RAM without swap. If you oversize your tmpfs instances the machine will deadlock

(ênfase minha)

Also, what happens if it gets full?

Como mencionado acima, se você se comprometeu muito com o tmpfs, sua máquina irá travar. Caso contrário (se for atingido seu limite), ele retornará o ENOSPC como qualquer outro sistema de arquivos.

Finally, what takes priority into the memory tmpfs or applications? i.e., if I have tmpfs sufficiently full (like 40% of the physical memory) and I have programs that requires 70% of the physical memory, which one gets the priority?

É semelhante à contenção entre programas. As páginas mais usadas tendem a estar na memória física, enquanto as páginas menos usadas tendem a ser trocadas.

Se você precisa garantir que as páginas estejam sempre na memória física você pode usar o ramfs que é semelhante, mas é de tamanho fixo e não troca.

    
por 23.05.2015 / 05:38