É uma boa idéia colocar ~ / .cache em um tmpfs?

6

Estou preocupado com o diretório ~/.cache por dois motivos: ele causa muitas gravações no meu SSD desnecessariamente e contém informações (como miniaturas de imagens) sobre arquivos em contêineres criptografados e unidades externas.

Eu coloquei em um tmpfs com uma linha em fstab . Ele é executado sem problemas, até ficar cheio: isso causa mensagens de erro com alguns programas.

Eu assumi que os arquivos em .cache não deveriam ser persistentes (da mesma forma que /tmp ), e é por isso que usei um tmpfs. Então eu escrevi um script, executado por cron , que limpa .cache a cada hora se o tmpfs estiver cheio.

Mas isso causa uma mensagem de erro de tracker , que não consegue encontrar seu banco de dados.

Isso me leva a pensar que esse diretório não deveria ser persistente. É uma boa ideia colocá-lo em tmpfs ?

    
por Arno 08.05.2016 / 11:39

1 resposta

6

Parece que você tem um problema

Sim, então, se o cache incluir o banco de dados do rastreador, quando você "limpar" ele irá recuperá-lo novamente (depois de examinar cuidadosamente todos os seus arquivos). Então eu não acho que isso seja uma ótima idéia.

O problema fundamental é que você tem (uma combinação de) software gravando em um sistema de arquivos limitado, que não observa o espaço disponível: (.

Pensando em voz alta

Eu acredito que o Fedora costumava gerenciar /tmp usando o tmpreaper, que exclui arquivos antigos. Em teoria, alguns desenvolvedores de aplicativos podem ter antecipado esse modelo. Na prática - as pessoas simplesmente não fazem isso para ~ / .cache, então é provável que você atinja alguns casos de canto não testados que explodem. Por exemplo. Percebo que ls -l --time=atime ~/.cache/tracker mostra uma boa quantidade de variações, por isso não tenho a garantia de que funcione bem.

Grande parte do software mais importante terá alguns limites configuráveis. Mas não é uma ótima solução ter que continuar configurando cada um individualmente, alocando uma quantidade fixa do espaço disponível (ou 0) para cada um.

Eu acho que pode ser útil para navegação na web, para permitir 100M para evitar o download de imagens e códigos muito recentes. (Na verdade, suspeito que o "gerenciamento automático de cache" padrão do Firefox evitaria o preenchimento do próprio sistema de arquivos).

Você poderia ter um tmpfs separado para alguns softwares de "lista branca" (usando links simbólicos para redirecioná-los), os quais você confia em não preencher / ter alocado espaço fixo para, e deixar os outros perderem espaço erros (e ser limpo brutalmente pelo sistema existente).

Tese

Sugiro que, se você não puder pagar pelo cache de disco padrão, será necessário alterar apenas o armazenamento em cache de suporte para o software selecionado e, em seguida, apenas executar a limitação de danos em todo o restante. "Se" é a palavra significante aqui.

(Alternativamente: se você usar um software específico que supere o software mais comum por fatores significativos, talvez esteja certo e precise conter esse software específico).

Execute os números. Seu SSD está realmente em perigo?

Ok, se estamos falando de netbooks baratos com o menor eMMC que pode rodar o Windows, então sim, você está meio que ferrou. É provável que você precise monitorar o uso de seu disco espaço , seu software, limitar e desabilitar a si mesmo. O tmpfs pode ser uma parte útil para conter algumas gravações no cache de disco, se você precisar usar esse software fora de controle (combinação de?). Mas você precisa identificar o software específico.

No entanto, para os dispositivos normalmente vendidos como "SSD" (e não "eMMC"), que atualmente começam em 128-256GiB, o software mais comum não causará nenhum problema. Se você quer garantias genéricas sobre isso, com suporte de dados, testes, fontes confiáveis, etc, o Google é seu amigo - há um monte de artigos divertidos. Pessoalmente, eu queria poder monitorar o uso, para ter uma ideia geral. Eu acho que há algumas ferramentas úteis aqui.

  • Eu usei tune2fs -l /dev/... para ver as "gravações ao longo da vida" em um determinado sistema de arquivos ext4. Infelizmente o btrfs não parece apoiar isso.
  • Em um sistema em execução, você pode ver /sys/block/<dev>/stat . A sétima coluna representa o número de gravações de 512 bytes no dispositivo. Eu suponho que você poderia registrar isso em intervalos regulares & em um script de desligamento.
  • sudo atop pode mostrar gravações de disco por processo, no modo de disco. Por exemplo. Se você pressionar "d", ele mostrará gravações cumulativas por processo desde a inicialização. Por alguns segundos, ele mudará para mostrar o último intervalo. FIXME , presumivelmente, existe uma maneira melhor, por exemplo para manter no topo exibindo a figura cumulativa.

Eu executei um script usando tune2fs no cron para anexar a um arquivo de log e observei algo como 1-4 GB de gravações por dia. Este foi maior do que eu realmente queria ver, mas não foi problema para mim, dado o tempo de vida nominal escreve da unidade. Deve durar bem mais de uma década, quando ficará fora da garantia e em falta de substituição. Mesmo que você não esteja planejando substituí-lo antes que a unidade saia da garantia - a vida útil nominal tem que ser conservadora; não vai cair morto imediatamente. Testes mostraram que os drives podem durar muito mais do que sua classificação.

E você faz backup, certo? Você não está confiando em uma ausência extrema de falhas de hardware para garantir a sobrevivência de quaisquer dados críticos.

    
por 08.05.2016 / 13:33

Tags