Rsync在一个50 GB的文件上触发了Linux OOM杀手
我在server_A上有一个50 GB的文件,并将其复制到server_B。 我跑 server_A$ rsync –partial –progress –inplace –append-verify 50GB_file root@server_B:50GB_file Server_B具有32 GB的RAM,2 GB交换。 它大多是空闲的,应该有大量的可用RAM。 它有足够的磁盘空间。 大约32 GB时,由于远程端closures了连接,传输将中止。 Server_B现在已经退出了networking。 我们要求数据中心重新启动它。 当我查看崩溃之前的内核日志时,发现它使用了0字节的交换,进程列表使用的内存非常小(rsync进程被列为使用600 KB的RAM),但是oom_killer是而且日志里的最后一件事就是杀死metalog的内核读者进程。 这是内核3.2.59,32位(因此无论如何都不能映射超过4GB的进程)。 就好像Linux比caching更优先于长期运行的守护进程。 是什么赋予了?? 我怎样才能阻止它再次发生? 这是oom_killer的输出: Sep 23 02:04:16 [kernel] [1772321.850644] clamd invoked oom-killer: gfp_mask=0x84d0, order=0, oom_adj=0, oom_score_adj=0 Sep 23 02:04:16 [kernel] [1772321.850649] Pid: 21832, comm: clamd Tainted: GC 3.2.59 #21 Sep 23 02:04:16 […]