ily*_*725 7 memory systemd out-of-memory
当内存使用量达到某个值时,我正在尝试使用systemd 基础架构来终止内存泄漏服务。使用的配置文件是这样的:
[Unit]
Description="Start memory gobbler"
After=network.target
MemoryAccounting=true
MemoryHigh=1024K
MemoryMax=4096K
[Service]
ExecStart=/data/memgoble 8388600
Run Code Online (Sandbox Code Playgroud)
systemd版本是 237。但是,无论我在MemoryMax内核中设置什么,它都会按照自己的条件杀死进程,通常是当它的内存消耗几乎达到整个物理 RAM 时。我在没有交换的嵌入式系统上运行它。
有人在配置中看到明显的错误吗?也许还有一些我遗漏的其他设置。
phe*_*mer 13
您的配置参数位于错误的部分。
如果您查看日志,您应该看到:
Unknown lvalue 'MemoryAccounting' in section 'Unit'
Unknown lvalue 'MemoryHigh' in section 'Unit'
Unknown lvalue 'MemoryMax' in section 'Unit'
Run Code Online (Sandbox Code Playgroud)
https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html
资源控制配置选项在 [Slice]、[Scope]、[Service]、[Socket]、[Mount] 或 [Swap] 部分配置,具体取决于单元类型。
因此你想要:
[Unit]
Description="Start memory gobbler"
After=network.target
[Service]
ExecStart=/data/memgoble 8388600
MemoryAccounting=true
MemoryHigh=1024K
MemoryMax=4096K
Run Code Online (Sandbox Code Playgroud)