2016-10-30 7 views
0

Wenn PHP Docker läuft diesen Befehl:Docker Grenze Speichernutzung funktioniert nicht

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 

Wo your-script.php den folgenden Inhalt hat:

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

Der Behälter am Laufen hält, obwohl die Speicherauslastung die erreicht hat Grenze 50M.

Bevor Docker run Befehl ausgeführt wird, führen Sie den folgenden Befehl auf Host-Maschine:

$ watch "free -m" 

Retour:

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

Während der Docker run Befehl ausgeführt wird ich den Wert in der freien Spalte sehen nach unten unter 200M aber das Skript läuft weiter.

+0

was erwarten Sie? – Rao

+0

Sollte der Container nach dem Andocken von mehr als 5 MB RAM gestoppt (und entfernt) werden? – petwho

Antwort

0

Ihr Code zählt nur, ich werde nie das Limit erreichen. Versuchen Sie, Objekte oder ähnliches zu erstellen.

Eine andere Sache, den verbrauchten Speicher mit free zu messen, ist sehr ungenau. Aufgrund des Betriebssystems verwendet Speicher für den Cache. Versuchen Sie oben und drücken Sie E und e, um die Werte in MB anzuzeigen.

Grüße