Depois de ver o comentário do Anonymous na pergunta Como o diretório / tmp é limpo? , Achei que seria uma ótima ideia implementar no meu sistema, pois tenho 16 GB de RAM e nunca usei tudo.
Meus arquivos temporários nunca são gravados no disco. Eles são gravados em um disco RAM. Eu coloquei
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
no / etc / fstab.
Minha pergunta é:
Posso definir um valor máximo para o uso da RAM /tmp
? E, nesse caso, o que aconteceria se o valor máximo fosse excedido, ele gravaria na unidade de disco rígido?
Eu li uma solução que afirma:
mkdir -p /tmp/ram sudo mount -t tmpfs -o size=512M tmpfs /tmp/ram/
Mas, no meu entendimento, isso não será uma solução permanente. Se eu precisar que ele seja permanente, ele deverá ser adicionado ao /etc/fstab
arquivo de configuração.
Se esta é a solução correta, como posso transformar esse comando mount em uma linha /etc/fstab
?
fonte
Respostas:
Você está absolutamente certo. A entrada fstab correspondente ficaria assim:
Observe:
Conforme
tmpfs
for preenchido, ele se comportará como qualquer disco rígido físico, fornecendo um erro "espaço insuficiente". Enquanto a reinicialização (e, portanto, o esvaziamento do cache) corrigem isso, você pode ter problemas quando uma única operação consome mais espaço para começar do que há espaçotmpfs
. Nesse caso, seu computador começará a trocar de ram para disco, o que fará com que o sistema pare, desde que você tenha uma partição de swap, é claro.Considerando isso, um tamanho de 512 MB pode ser muito menor hoje em dia, uma vez que existe muito mais memória RAM em máquinas modernas e ficou muito mais barato. Como você já possui 16 GB de RAM, o uso do valor padrão de metade da RAM
tmpfs
deve ser suficiente para quase todos os cenários. Para usar o valor padrão, simplesmente deixe de fora asize=512M
entrada no seu/etc/fstab
arquivo.Outra nota:
Você também pode montar facilmente outras pastas do sistema no ramdisk, como
/var/cache
/var/games
/var/log/apt
(use apenasdefaults,noatime
semmode=
ounosuid
)Mas cuidado: as mesmas regras se aplicam como acima, ficar sem espaço pode causar grandes problemas. Por exemplo, imagine que ficar sem espaço para / var / log / apt tornará você incapaz de instalar qualquer programa! Além disso, o carregamento de
/var/log
pastas no ramdisk excluirá todos os seus arquivos de log após a reinicialização, assim você não poderá depurar seu sistema se algo inesperado acontecer. Portanto, use essas configurações por sua conta e risco!Nota Editorial: Eu removi o
/run
natmpfs
opção de montagem uma vez que esta pasta e suas subpastas já estão montados notmpfs
por padrão.fonte
Em sistemas usando
systemd
, você tem a opção de usar um arquivo de unidade systemd em vez de fstab para atingir o objetivo de usartmpfs
para montartmp
. No meu sistema Ubuntu 16.04, executei:O arquivo se
/usr/share/systemd/tmp.mount
parece com:Usando a abordagem fstab do FuzzyQ, o systemd converte suas entradas do fstab em unidades de montagem dinamicamente. Não acho que nenhuma das abordagens seja melhor.
Para definir o limite máximo para a RAM, conforme solicitado, seria necessário adicionar
size=512M
àOptions
linha, separada por vírgula.fonte
systemctl enable tmp.mount
depois que o cp else systemctl falhará com a mensagem "Failed to start tmp.mount: Unit tmp.mount not found.
"systemctl edit tmp.mount
que seria neutro em termos de distribuição. Isso coloca suas alterações no override.conf para que você não altere o padrão tmp.mount e exclua o override.conf facilmente para voltar à configuração padrão.ln -s
e nãocp
na primeira etapa.