Eu tenho 10 TB de dados (cerca de 100 milhões de PDFs) que estou copiando de uma caixa do Centos para uma nova caixa do Ubuntu. Eu criei um script copy-pdfs.sh com isso
parallel -j 10 :::: jobs.txt
e iniciou o processo usando o nohup (é um servidor remoto, portanto não posso usar facilmente o console). Este é o meu comando para iniciar os trabalhos.
nohup /home/user/copy-pdfs.sh &
Meu jobs.txt parece algo assim, existem cerca de 36.000 pastas.
rsync -avvz --chmod=Du=rwx,Dgo=rx,Fug=rw,Fo=r --chown={$owner}:{$group} user@old-server:/pdfs/1 /pdfs/. >> /home/user/progress.log;echo 'folder 1 done' >> /home/user/prog.log
rsync -avvz --chmod=Du=rwx,Dgo=rx,Fug=rw,Fo=r --chown={$owner}:{$group} user@old-server:/pdfs/2 /pdfs/. >> /home/user/progress.log;echo 'folder 2 done' >> /home/user/prog.log
rsync -avvz --chmod=Du=rwx,Dgo=rx,Fug=rw,Fo=r --chown={$owner}:{$group} user@old-server:/pdfs/3 /pdfs/. >> /home/user/progress.log;echo 'folder 3 done' >> /home/user/prog.log
Meu problema é que isso funciona bem por até 24 horas e depois para. Meu nohup.out simplesmente tem:
Killed
E no syslog eu tenho isso:
Jan 19 19:08:00 {$server} kernel: [97451.781319] Out of memory: Kill process 9765 (rsync) score 1 or sacrifice child
Jan 19 19:08:00 {$server} kernel: [97451.782165] Killed process 9765 (rsync) total-vm:535628kB, anon-rss:10044kB, file-rss:1500kB
O novo servidor é virtual e na primeira execução tinha 4 GB de RAM. Eu tinha um outro 4GB atribuído a ele, e agora tem 8GB de RAM. Isso não impediu que o erro de falta de memória acontecesse. Não consigo ver o que está causando esse erro. Eu ficaria muito grato por qualquer sugestão.