我有 10TB 的数据(大约 1 亿个 PDF),正在从 Centos 机器复制到新的 Ubuntu 机器。我创建了一个脚本 copy-pdfs.sh,它包含以下内容
parallel -j 10 :::: jobs.txt
并使用 nohup 启动该进程(这是一个远程服务器,因此我无法轻松使用控制台)。这是我启动作业的命令。
nohup /home/user/copy-pdfs.sh &
我的 jobs.txt 看起来像这样,大约有 36000 个文件夹。
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
我的问题是,它运行正常长达 24 小时,然后停止。我的 nohup.out 只是有:
Killed
在系统日志中我有这个:
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
新服务器是虚拟的,第一次运行时有 4GB RAM。我又给它分配了 4GB,现在有 8GB RAM。这并没有阻止内存不足错误的发生。我看不出是什么导致了这个错误。如果能提出任何建议,我将不胜感激。