
使ってみようシステムインフラメモリ使用量が特定の値に達すると、メモリリークサービスを終了します。使用される構成ファイルは次のとおりです。
[Unit]
Description="Start memory gobbler"
After=network.target
MemoryAccounting=true
MemoryHigh=1024K
MemoryMax=4096K
[Service]
ExecStart=/data/memgoble 8388600
systemd
バージョンは237です。しかし、MemoryMax
カーネルに何を設定しても、通常、カーネルは、メモリ消費がほぼ全体の物理RAMに達すると、それ自体がプロセスを終了します。私はこれをスワップせずに組み込みシステムで実行しています。
構成で明らかなエラーを発見した人はいますか?たぶん他の設定が欠落している可能性があります。
答え1
構成パラメーターが無効なセクションにあります。
ログを見ると、次のようになります。
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