systemdインフラストラクチャ を使用して、メモリ使用量が何らかの値に達したときにメモリリークサービスを強制終了しようとしています。使用される構成ファイルは次のとおりです。
[Unit]
Description="Start memory gobbler"
After=network.target
MemoryAccounting=true
MemoryHigh=1024K
MemoryMax=4096K
[Service]
ExecStart=/data/memgoble 8388600
systemd
バージョンは237です。ただし、MemoryMax
で設定した値に関係なく、カーネルは独自の条件でプロセスを強制終了します。通常、メモリの消費が物理RAMのほぼ全体に達した場合です。私は組み込みシステムでこれをスワップなしで実行しています。
構成に明らかなエラーが表示されていますか?おそらく、他に欠けている設定があるかもしれません。
構成パラメーターが間違ったセクションにあります。
ログを見ると、次のことがわかります。
Unknown lvalue 'MemoryAccounting' in section 'Unit'
Unknown lvalue 'MemoryHigh' in section 'Unit'
Unknown lvalue 'MemoryMax' in section 'Unit'
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