Resumo da pergunta: Existe alguma maneira de diminuir o uso de ram do ratarmount? Quais fatores afetam o uso de ram (além do tamanho do tar)?
Edição/esclarecimento da pergunta: Que método posso usar para reduzir ao mínimo a memória residente?
O meu caso:
- Estou usando ratarmount para montar arquivos tar massivos (800gb é o maior que tenho, por exemplo).
- Eu tenho um servidor com unidades de 6x6tb, 20 núcleos e 256gb de ram.
- Eu tenho cerca de 20-25 tb desses tipos de arquivos tar montados
- Com a quantidade acima de arquivos tar montados, acabei de atingir a quantidade máxima de ram no meu servidor ~ 250gb
- Os arquivos tar têm uma quantidade louca de (possivelmente centenas de milhões) pequenos arquivos e pastas.
Meu problema: Ratarmount agora atingiu 240 GB de uso de ram para mim e está praticamente maximizando a ram dos meus servidores. Ainda preciso montar outros 5-10 tb de arquivos tar.
Parece um pouco inconsistente com a quantidade de ram que ele usa. Por exemplo, a primeira vez que você montá-lo acabará usando mais memória RAM do que se ele fosse montado a partir de um arquivo de índice. É um mistério para mim o que posso experimentar para torná-lo mais ineficiente. Aberto a qualquer ideia. Eu preciso diminuir o uso de ram em ~ 25% para terminar meu projeto.
Nota lateral ... Eu vi que este usuário criou ratarmount. É um programa incrível que me salvou completamente, mas não tenho ideia de como entrar em contato com ele ou o que é considerado a maneira estabelecida / aceitável de alcançar alguém aqui ou no github
Acabei de testar
ratarmount
com um arquivo com 10M de arquivos. Se você não estiverstat
ativando todos os arquivos,ratarmount
acabará trocando.Portanto, uma solução muito simples é adicionar espaço de troca ao seu servidor. Se você usar
zswap
, poderá até evitar tocar nos discos físicos.Também confirmei sua observação de que é preciso muito mais memória para indexação + montagem do que simplesmente para montagem. Isso significa que há um vazamento de memória
ratarmount
(provavelmente a estrutura de dados é copiada e uma cópia desnecessária não é destruída). Assim, você pode minimizar o uso de dados por index+mount, seguido imediatamente por umount e, em seguida, montando novamente.