Рейтинг:0

Ограничения памяти Cgroups — сценарий уничтожается задолго до достижения предела

флаг cn

Я пробую простой пример, чтобы понять, как ограничить потребление памяти процессами.

Я создал тестовую группу памяти, установил ограничения для memory.limit_in_bytes и memory.memsw.limit_in_bytes на 5 МБ.

У меня есть очень простая программа, которая выделяет память с шагом в 1 МБ (путем чтения со случайного устройства).

Я ожидал, что мой скрипт достигнет где-то около 5 МБ, прежде чем его убьют, но он убивает сразу после того, как прочитает 1 МБ.

Когда я поднимаю ограничения cgroup до 8 МБ, она уничтожается после использования 3 МБ.

Я пробовал с разными лимитами и заметил, что он постоянно убивается, не достигнув половины выделенного лимита.

Может кто-нибудь, пожалуйста, дайте мне знать, если я пропущу что-нибудь еще?

Был бы очень признателен за некоторые рекомендации.

user10489 avatar
флаг in
Обратите внимание, что вам не нужно читать с устройства для выделения памяти. Достаточно использовать malloc и касаться байта на каждой странице.
Рейтинг:0
флаг in

Ограничения памяти cgroups также распространяются на исполняемый код программы, включая сам исполняемый файл и любые общие библиотеки, которые ему нужны. Вы можете использовать такие инструменты, как PS и вершина (или один из лучших вариантов), чтобы посмотреть фактическое использование памяти, прежде чем устанавливать ограничения с помощью cgroups и, возможно, до того, как вы разрешите своей тестовой программе начать выделение памяти.

флаг cn
Спасибо. Я подозревал библиотеки, которые использует программа, и, как вы предположили, похоже, это так. Я также использовал pmap для проверки фактического потребления памяти, и это подтверждает ваш ответ здесь.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.