2016-10-30 3 views
0

При запуске PHP докер с помощью этой команды:Docker использование ограничение памяти не работает

docker run -m 50M -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp php:7.0-cli php your-script.php 

Где your-script.php имеет следующее содержание:

<?php 
    for ($i = 0; $i > -1; $i++) 
     echo $i; 
?> 

Контейнер продолжает работать, даже если использование памяти достиг предел 50M.

Перед выполнением команды Докер run, выполнив следующую команду на хост-машине:

$ watch "free -m" 

Возвращается:

   total used  free  shared buffers  cached 
Mem:   995  634  360   0  116  191 

В команде докер run работает, я могу видеть ценность в свободной колонке вниз до уровня ниже 200 М, но сценарий все еще работает.

+0

Что вы ожидаете? – Rao

+0

Должен ли контейнер быть остановлен (и удален) после докера, потребляющего более 5 МБ ОЗУ? – petwho

ответ

0

Ваш код подсчитывается, я никогда не достигнет предела. Попробуйте создать объекты или что-то в этом роде.

Другое дело, что измерение потребляемой памяти с помощью бесплатного очень неточно. Из-за ОС использует память для кеша. Попробуйте сверху и нажмите E и e, чтобы увидеть значения в MB.

С уважением

Смежные вопросы