Я провел простой эксперимент с контроллером памяти cgroup v1 и v2 на ядре 4.18, которое выглядит следующим образом.
- Я установил максимальное ограничение памяти соответственно. Для v1 я записываю в memory.limit_in_bytes, а для v2 я записываю в файл memory.max.
Я перемещаю в него текущий экземпляр bash (т. Е. $$) и запускаю цикл, который выполняет тольколевая сторонаОграничение установлено в 8M байтов.
while [[ 1 ]]; do ls; done
Через некоторое время экземпляр bash прерывается из-за OOM. Я не понимаю, почему это так, потому что процесс ls вернет память после завершения, чтобы ее можно было повторно использовать в следующей итерации.
Я что-то упустил?
Спасибо,