Atualmente estou executando uma reconstrução em um NAS btrfs (~ 20TB) que teve uma falha de unidade. Vai levar alguns dias. Meu problema é que uma vez a cada 24 horas a RAM é preenchida e o kernel começa a matar processos até que todo o sistema morra.
htop
mostra isso como uso de memória do processo do usuário, mas nenhum processo do usuário mostra nenhum uso significativo de memória:
free
mostraissocomoramarmazenadoembuffer/emcache:
#free-htotalusedfreesharedbuff/cacheavailableMem:15G923M1.0G16M13G5.0GSwap:7.9G0B7.9G
slabtop
Como você pode ver, bio
tem uma quantidade insana de uso de placas. A execução de sync && echo 3 > /proc/sys/vm/drop_caches
limpa o uso de dentry
, mas não afeta bio
.
Este NAS está executando o Rockstor, que é baseado no CentOS. A máquina em questão está no kernel 4.4.5-1.el7.elrepo.x86_64
. Não há nada de importante nas mensagens do kernel até que o uso da RAM chegue ao ponto em que os processos começam a ser eliminados.
Isso é um erro de vazamento de memória no BTRFS ou no kernel? Se este é um bug que precisa ser reportado, como determinei para qual pacote reportá-lo?
Existe uma maneira de limpar o uso do cache por bio
para que eu possa concluir esta reconstrução de RAID sem reinicializar o sistema uma vez por dia quando ele falhar de ficar sem RAM?
E apenas por curiosidade mórbida, se este é o cache do kernel, por que htop
o reporta como uso da memória do processo do usuário (barra verde)?