Ограничения памяти cgroup контейнера systemd-nspwan не кажутся точными с параметром конфигурации MemoryMax или MemoryHigh

Я пытаюсь ограничить использование памяти для контейнера, запущенного с помощью systemd-nspawn. Контейнер работает в операционной системе Linux на базе yocto (архитектура ARM32).

Проблема, с которой я столкнулся, заключается в том, что память, используемая контейнером, почти вдвое превышает предел, который я фактически установил для контейнера.

Команда, которую я использую для запуска контейнера вместе с настройкой ограничения памяти, приведена ниже.

"systemd-nspawn --image=/var/lib/machines/test-container-image.ext4 --console= только для чтения --register=no --property=MemoryHigh=15M --property=MemoryMax=20M /usr" /bin/test-app"

например, если я установил MemoryMax=5M, то после использования 12 МБ дополнительной памяти я вижу, что использование памяти остается стабильным.

если я установил MemoryMax=20M, я вижу, что после использования дополнительной памяти 40 МБ использование памяти остается стабильным.

Если я не устанавливаю ограничение памяти с помощью MemoryMax, тогда тестовое приложение полностью использует память и завершение работы системы.

Контейнер успешно запускается, и мой тестовый пример с вилкой-бомбой также запускается внутри контейнера, однако я вижу, что память, используемая контейнером, почти вдвое больше, чем я установил с помощью параметра конфигурации MemoryMax.

Примечание:test-container-image.ext4 - это имя образа контейнера, а тестовое приложение устанавливается внутри контейнера. В основном тестовое приложение запускает тестовые сценарии fork bomb, которые полностью используют память устройства и завершают работу устройства из-за полного использования памяти.

0 ответов

Другие вопросы по тегам