2015-03-03 13 views
35

mem_limit wird von docker-compose unterstützt? Wie kann ich es testen?Kann ich mem_limit in docker-compose verwenden? und wie?

Ich habe eine folgende Docker-compose.yml

repository: 
    image: myregistry/my_nginx_image 
    mem_limit: 60m 
    volumes: 
    - /etc/localtime:/etc/localtime 
    ports: 
    - "80:80" 

Wie kann ich beweisen, dass der Behälter tatsächlich nicht mehr als 60 MB RAM nicht überschreitet?

Ich verwende:

  • Docker 1.3.1
  • Docker-komponieren 1.1.0
+1

ja, man kann mem_limit und cpu_shares gesetzt http : //docs.docker.com/compose/yml/#working95dir-entrypoint-user-hostname-domainname-mem95limit-privileged-restart-stdin95open-ttyp-cpu95shares – kikicarbonell

+0

'docker stats' ermöglicht das Ansehen von Containerressourcen. – ulidtko

+0

Aktualisierter Dokumentationslink: https://docs.docker.com/compose/compose-file/compose-file-v2/#cpu-and-other-resources Verwenden Sie 'mem_limit' in der Datei. – levibostian

Antwort

44

Ja. Die Speicherbeschränkung wird von docker-compose unterstützt, und der Wert kann wie in Ihrem Beispiel mit "m" für Megabyte festgelegt werden.

Mit dem Befehl "docker stats" kann überprüft werden, welches Speicherlimit für den aktiven Docker-Container festgelegt ist.

Wenn Ihr Containername ist "repository_1" dann diesen Befehl verwenden:

docker stats repository_1 

Das Ergebnis davon wird auf diese eine simillar sein:

CONTAINER  CPU % MEM USAGE/LIMIT MEM %  NET I/O 
repository_1 1.93% 4.609 MiB/60 MiB 7.20%  1.832 KiB/648 B 
+0

welche Version von Docker verwenden Sie. 1.3.1 habe keinen Statistikbefehl – montells

+0

Ich benutze Docker 1.5. Anscheinend wurde "Docker Stats" in Docker 1.5 eingeführt: https://blog.docker.com/2015/02/docker-1-5-ipv6-support-read-only-containers-stats-named-dockerfiles-and -Mehr/ – maniekq

3

Nach fig documentation, einfach

mem_limit: 1000000000 

sollte genügen. Ich denke, du solltest "m" fallen lassen und Bytes anstelle von Megabytes verwenden.

+0

Ja, das habe ich getan. Es werden keine Fehler angezeigt, aber ich bin mir nicht sicher, ob dies die zu verwendende Speichermenge begrenzt. Wie könnte ich überprüfen? – montells

+0

Link zum Verfassen von Dokumenten, die über 'mem_limit' und andere Optionen sprechen: https://docs.docker.com/compose/compose-file/compose-file-v2/#cpu-and-other-resources – levibostian

0

Sie können finden, wie configure docker Ressourcen zu begrenzen (CPU & MEMORY) und wie testen Sie Ihre Einschränkungen in diesem Beitrag im letzten Jahr geschrieben: resource-management-in-docker.

+0

eine weitere einfache Möglichkeit zu testen MEMORY limits führt Code in Containern wie folgt aus: http://soichi.us/archives/11, aber sei vorsichtig mit dem Tauschverhalten, wie in der Referenz meiner Antwort gezeigt. – kikicarbonell