2014-09-23 20 views
16

Kod parçalarını tutarlı koşullarda çalıştıran bir sistem oluşturmaya çalışıyorum ve bunun mümkün olduğunu düşünürken, bir kerede çeşitli programların aynı düzende docker kapsayıcılarında çalıştırılmasıdır Aynı miktarda bellek, vb. saklı kalmakla birlikte, CPU kullanımının nasıl tutarlı tutulacağını anlayamıyorum.Bir Docker Kapsayıcısının tek bir cpu çekirdeği ile sınırlanması

Bulduğum en yakın şey "cpu paylaşımları" dır, eğer belgeyi anlarsam, cpu kullanımını sistemde diğer kapsayıcılar/diğer işlemlerin çalışmasına göre sınırlar ve sistemde ne varsa kullanılabilir . Konteynırı mutlak miktarda cpu kullanımına sınırlayabilecek gibi görünmemektedir.

İdeal olarak, tek bir cpu çekirdeği kullanmakla sınırlı olacak docker konteynerleri kurmak istiyorum. Bu mümkün mü? Eğer Docker daha yeni bir sürümünü kullanıyorsanız

cevap

28

, size tahsis etmek istediğiniz CPU çekirdeği belirtmek için docker run içinde --cpuset-cpus="" kullanabilirsiniz:

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

Eğer Docker eski bir sürümünü (< 0.9) kullanırsanız, hangi varsayılan işlem ortamı olarak LXC kullanıyorsa, ayrılan CPU çekirdeklerini yapılandırmak için --lxc-conf kullanabilirsiniz: bu gibi durumlarda her ikisinde

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

sadece ilk işlemci çekirdek liman işçisi conta sunulacak akışmazlığa sahiptirler. Bu seçeneklerin her ikisi de in the docker help belgelenmiştir.

İlgili konular