Skip to content

Latest commit

 

History

History
44 lines (26 loc) · 1.66 KB

parallel_make_oom.rst

File metadata and controls

44 lines (26 loc) · 1.66 KB

并行make触发OOM排查

我在使用 parallel_make 时候遇到一个困难,大量并行的 cc1plus 触发系统OOM导致大型编译 upgrade_gcc_on_centos7 无法完成:

parallel_make_oom/dmesg

可以看到内存限制大约10G,当达到内存限制时, cc1plus 被系统OOM杀掉

那么,这个ssh的子进程的内存限制是在哪里继承和配置的呢?

这里可以看到 Task in /system.slice/sshd.service killed as a result of limit of /system.slice/sshd.service ,这表明 linux_oom 受到 cgroup 限制

简单来说 system.slice/sshd.service 位于 /sys/fs/cgroup/memory/system.slice/sshd.service 可以找到 memory.limit_in_bytes :

cat /sys/fs/cgroup/memory/system.slice/sshd.service/memory.limit_in_bytes

当前值是:

10737418240

折算G恰好就是 10GB ( 10737418240/1024/1024/1024 )

临时修订:

echo 1073741824000 > memory.limit_in_bytes

然后重新执行 parallel_make

Note

详细我准备系统学习 systemd_manage_resources 来完善这方面知识

参考