memory.memsw.limit_in_bytes: 無効な引数

memory.memsw.limit_in_bytes: 無効な引数

私は Debian 10 サーバーを持っており、cgroups2 を使用してユーザーのメモリ + スワップを制限しようとしています。

を使用すると正常に動作しますが、動作していないmemory.limit_in_bytesメモリ+スワップの使用を制限したいです。memory.memsw.limit_in_bytes

実行するとこのエラーが発生しますcgconfigparser:

root@server:~# cgconfigparser -l /etc/cgconfig.conf
Error: failed to set /sys/fs/cgroup/memory/group1/memory.memsw.limit_in_bytes: Invalid argument
cgconfigparser; error loading /etc/cgconfig.conf: Failed to remove a non-empty group
root@server:~#

グループは次のとおりです:

group group1 {
  memory {
    memory.memsw.limit_in_bytes = 512m;
  }
}

何が問題なのか分かりますか?

編集: GRUB コマンドで cgroups メモリと swapaccount をすでに有効にしましたが、それでも問題は発生します。

答え1

回答を提供してくれた@doktor5000に感謝します単一の Linux プロセスのメモリ使用量を制限する

その答えから私は次のように結論付けました: はmemory.limit_in_bytesより前に設定されmemory.memsw.limit_in_bytesmemory.memsw.limit_in_bytesより大きいか等しい必要があります。memory.limit_in_bytes

私の場合、このグループ構成が機能しました:

group group1 {
  memory {
    memory.limit_in_bytes = 512m;
    memory.memsw.limit_in_bytes = 512m;
  }
}

これはユーザーのメモリ+スワップを512MBに制限するようです。私はこれをテストしましたhttps://github.com/julman99/eatmemory

関連情報