2014-09-23 16 views
16

Próbuję zbudować system, który uruchamia fragmenty kodu w spójnych warunkach, i jednym ze sposobów, w jaki uważam, że jest to możliwe, jest uruchamianie różnych programów w kontenerach doków w tym samym układzie , rezerwując taką samą ilość pamięci itp. Jednak nie mogę się dowiedzieć, jak utrzymać spójność użycia procesora.Ograniczanie kontenera Docker do pojedynczego rdzenia procesora

Najbliższe, co mogę znaleźć, to "udziały w procesorze", które, jeśli rozumiem dokumentację, ograniczają użycie procesora w odniesieniu do innych kontenerów/innych procesów uruchomionych w systemie i tego, co jest dostępne w systemie . Wydaje się, że nie są w stanie ograniczyć kontenera do bezwzględnej ilości użycia procesora.

Idealnie chciałbym skonfigurować pojemniki dokerów, które byłyby ograniczone do używania pojedynczego rdzenia procesora. Czy to w ogóle możliwe?

Odpowiedz

28

przypadku korzystania z nowszej wersji Döcker, można użyć --cpuset-cpus="" w docker run określić rdzenie procesora, które chcesz przeznaczyć:

docker run --cpuset-cpus="0" [...] 

Jeśli używasz starszej wersji Döcker (< 0,9), które wykorzystuje lxc jako domyślne środowisko wykonania, można użyć --lxc-conf skonfigurować przydzielonych rdzeni CPU:

docker run --lxc-conf="lxc.cgroup.cpuset.cpus = 0" [...] 

W obu tych przypadkach, tylko pierwszy rdzeń CPU będzie dostępny do Conta Döcker iner. Obie te opcje są udokumentowane in the docker help.

Powiązane problemy