2015-03-03 17 views
35

mem_limit jest obsługiwany przez docker-compose? Jak mogę to przetestować?Czy mogę użyć mem_limit w docker-compose? i jak?

Mam następujący doker-compose.yml

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

Jak mogę udowodnić, że pojemnik rzeczywiście nie przekracza 60 MB pamięci RAM?

Używam:

  • doker 1.3.1
  • doker-komponować 1.1.0
+1

tak, można ustawić mem_limit i cpu_shares http : //docs.docker.com/compose/yml/#working95dir-entrypoint-user-hostname-domainname-mem95limit-privileged-restart-stdin95open-tty-cpu95shares – kikicarbonell

+0

"Statystyki dokowania" pozwala na oglądanie zasobów kontenera. – ulidtko

+0

Zaktualizowany link do dokumentu: https://docs.docker.com/compose/compose-file/compose-file-v2/#cpu-and-other-resources używają 'mem_limit' w pliku redagowania. – levibostian

Odpowiedz

44

Tak. Ograniczenie pamięci jest obsługiwane przez funkcję dokowania, a wartość można ustawić tak jak w przykładzie z "m" dla megabajtów.

Możliwe jest sprawdzenie, jaki jest limit pamięci dla uruchomionego kontenera Docker za pomocą komendy "statystyki dokowania".

Jeśli nazwa pojemnik jest „repository_1”, a następnie użyj polecenia:

docker stats repository_1 

Wynikiem tego będzie zblizonym do tego jednego:

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

jakiej wersji używanego okna dokowanego. 1.3.1 nie ma polecenia stats – montells

+0

Używam Docker 1.5. Wygląda na to, że "Docker stats" został wprowadzony w Dockerze 1.5: https://blog.docker.com/2015/02/docker-1-5-ipv6-support-read-only-containers-stats-named-dockerfiles-and -jeszcze/ – maniekq

3

Według fig documentation, prosty

mem_limit: 1000000000 

powinno wystarczyć. Chyba powinieneś upuścić "m" i użyć bajtów zamiast megabajtów.

+0

Tak, zrobiłem to. Nie otrzymuję żadnych błędów, ale nie jestem pewien, czy to ogranicza ilość pamięci do użycia. Jak mogłem sprawdzić? – montells

+0

Link do komponowania dokumentów mówiący o 'mem_limit' i innych opcjach: https://docs.docker.com/compose/compose-file/compose-file-v2/#cpu-and-other-resources – levibostian

0

Możesz dowiedzieć się, jak skonfigurować funkcję dokowania do ograniczania zasobów (CPU & MEMORY) i jak przetestować ograniczenia w tym poście napisanym w ubiegłym roku: resource-management-in-docker.

+0

Kolejny prosty sposób na sprawdzenie Limity MEMORY uruchamiają kod w kontenerach w następujący sposób: http://soichi.us/archives/11, ale zachowaj ostrożność przy zachowaniu swap, jak pokazano w referencji mojej odpowiedzi. – kikicarbonell

Powiązane problemy