2016-06-17 16 views
27

Powiedzmy, że korzystam z usługi multiprocessing w kontenerze dokowania, który uruchamia wiele procesów, czy dokowanie może korzystać ze wszystkich/wielu rdzeni/procesorów hosta lub tylko jednego?Ile procesorów używa kontener dokujacy?

+8

Może używać tyle procesorów, co cGrupa. Co domyślnie nie jest ograniczone. Zobacz '--cpuset-cpus', jeśli chcesz to zmienić. –

+2

(Kontener dokowany to tylko kilka prywatnych przestrzeni nazw - ponieważ nie emuluje procesorów, musiałby zejść z drogi, by narzucić jakiekolwiek ograniczenia, jądra systemu Linux zapewniają możliwość * zezwolenia na takie wychodzenie z drogi, ale to wciąż coś, co musi zostać wyraźnie wykonane). –

+1

To jest prawidłowe pytanie, dlaczego w dół? – kev

Odpowiedz

27

Jak wspomina Charles, domyślnie można użyć wszystkich lub można ograniczyć go dla kontenera za pomocą parametru --cpuset-cpus.

docker run --cpuset-cpus="0-2" myapp:latest 

To ograniczyłoby kontener do 3 procesorów (0, 1 i 2). Więcej szczegółów znajduje się w docker run docs.

Powiązane problemy