我知道ulimit,我知道如何限制我明确启动或开始使用脚本的进程的内存.但在这种情况下,我有一个由systemd管理和启动的服务.
我怎样才能限制其最大内存并使其达到内存使用量最大值时被杀死(甚至更好:防止内存分配(返回NULL到malloc / realloc))?
解决方法
Systemd支持通过MemoryLimit选项限制内存使用,如:
https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html所述
当允许的最大内存(每个服务)耗尽时,系统处理这种情况的方式取决于底层cgroups实现和systemd实现资源控制的方式;我猜这个过程会被杀死(通过OOM杀手).