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_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

相關內容