Olá,
Estou preso a este diretório:
drwxrwxrwx 2 dan users 980M 2010-12-22 18:38 sessions2
O conteúdo dos diretórios é pequeno - apenas milhões de pequenos arquivos.
Eu quero limpá-lo do sistema de arquivos, mas não consegui. Minha primeira tentativa foi:
find sessions2 -type f -delete
e
find sessions2 -type f -print0 | xargs -0 rm -f
mas teve que parar porque ambos causaram um aumento no uso de memória. Em um ponto, estava usando 65% da memória do sistema.
Então eu pensei (sem dúvida incorretamente), que isso tinha a ver com o fato de que dir_index estava habilitado no sistema. Talvez encontre estava tentando ler o índice inteiro na memória?
Então eu fiz isso (tolamente): tune2fs -O^dir_index /dev/xxx
Tudo bem, então isso deve acontecer. Ran o comando find
acima novamente e ... a mesma coisa. Uso de memória maluca.
Corri rapidamente tune2fs -Odir_index /dev/xxx
para reativar o dir_index e executei o Server Fault!
2 perguntas:
1) Como faço para me livrar deste diretório no meu sistema ao vivo? Eu não me importo quanto tempo leva, contanto que use pouca memória e pouca CPU. By the way, usando nice find ...
eu era capaz de reduzir o uso da CPU, então meu problema agora é apenas o uso da memória.
2) Desativei dir_index por cerca de 20 minutos. Sem dúvida, novos arquivos foram gravados no sistema de arquivos nesse meio tempo. Eu reativei o dir_index. Isso significa que o sistema não localizará os arquivos que foram gravados antes que dir_index fosse reativado, já que seus nomes de arquivos estarão ausentes dos índices antigos? Se sim, e sei que esses novos arquivos não são importantes, posso manter os índices antigos? Se não, como recompilar os índices? Pode ser feito em um sistema ao vivo?
Obrigado!