Instalei o Ubuntu 18.04 LTS em 4 discos rígidos em uma configuração RAID 1. Algo está mantendo os discos rígidos ocupados e eles nunca param. Coisas que fiz: - mapeei diretórios acessados com frequência (/var/log, /tmp etc) como tmpfs na memória - bloqueei /bin, /sbin e várias bibliotecas via vmtouch na memória
Após essas alterações, o iotop mostra apenas o kworker acessando o array.
btrace mostra isso:
9,0 0 0 350.464025971 0 m N md md_update_sb
9,0 0 98 350.849029580 2206 Q WM 71305144 + 8 [kworker/u128:0]
9,0 0 99 350.849034110 2206 Q WM 71305216 + 8 [kworker/u128:0]
9,0 0 100 350.849038452 2206 Q WM 71371648 + 8 [kworker/u128:0]
9,0 0 101 350.849045694 2206 Q W 0 + 8 [kworker/u128:0]
9,0 0 102 350.849048534 2206 Q WM 40 + 8 [kworker/u128:0]
9,0 1 137 350.976982774 0 C W 0 + 8 [0]
9,0 1 138 350.994303913 0 C WM 40 + 8 [0]
9,0 1 139 350.997638530 0 C WM 71303296 + 8 [0]
9,0 1 140 351.011237159 353 C WM 71305144 + 8 [0]
9,0 1 141 351.011403025 0 C WM 71305216 + 8 [0]
9,0 1 142 351.276814094 353 C WM 71371648 + 8 [0]
9,0 0 0 351.599976239 0 m N md md_update_sb
Se entendi o rastreamento corretamente, algo está atualizando o superbloco do array? O que mais posso fazer para rastrear o que mantém os discos ativos?
Atualização 1: Um RAID 6 também está configurado nos mesmos discos, mas não está montado e parece não haver acesso a ele.
cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md127 : active raid6 sde3[5] sdd3[4] sdc3[1] sdb3[0]
10737154048 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/4] [UUUU]
bitmap: 0/40 pages [0KB], 65536KB chunk
md0 : active raid1 sde2[5] sdd2[4] sdc2[2] sdb2[6]
52395008 blocks super 1.2 [4/4] [UUUU]
unused devices: <none>
Atualização 2: inotifywait -r -m /
rastreia todo o acesso ao sistema de arquivos. Filtrando progressivamente tudo o que já está montado na memória ...
inotifywait -r -m / @/dev @/sys @/proc @/run @/var/tmp @/tmp @/var/log @/var/spool
... mostrou arquivos de gravação instantâneos. Como não tenho conhecimento de nada que precise ser ajustado em minha instalação, limpei-o.
Responder1
De qualquer forma, seguindo os logs do inotifywait, encontrei um por um os processos (eram muitos!) Gravando no sistema de arquivos. Remapeei cada diretório para um tmpfs com um script de inicialização, copiando os arquivos para o tmpfs e remontando-o em vez do local do sistema de arquivos e, em seguida, copiando os arquivos de volta no desligamento. Isso tem ressalvas, mas servirá por enquanto.