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メモリとswapcountを有効にしましたが、問題は引き続き発生します。

ベストアンサー1

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

この答えで私が結論を下したのは、以前にmemory.limit_in_bytes設定しなければならず、memory.memsw.limit_in_bytes次のmemory.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

おすすめ記事