Debian

memory.memsw.limit_in_bytes:無效參數

  • April 12, 2020

我有一個 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 記憶體和交換帳戶,但問題仍然存在。

感謝@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對其進行了測試

引用自:https://unix.stackexchange.com/questions/579553