2016-11-17 47 views
7

t2.medium için konteyner hizmetinde yeni bir görev kaydedeceğim. Cpu parametresinin 0'a eşit olduğu örnekleri gördüm. Neyin olduğunu ve bir görev için buraya kaç tane koymam gerektiğini bulmaya çalışıyorum.'cpu' parametresi aws konteyner hizmetinde ne anlama geliyor?

Bu sorunun göre bulmak mümkün olduğu tüm: http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html?shortFooter=true http://docs.aws.amazon.com/AmazonECS/latest/developerguide/example_task_definitions.html

cevap

20

"işlemci birimlerinin sayısı kap için ayrılacak bir kap örneği her işlemci çekirdek için 1.024 işlemci ünitesine sahiptir.. Bu parametre , bir kapsayıcı için ayrılacak minimum CPU miktarını belirtir ve kapsayıcıları, ayrılan miktarıyla aynı orana sahip, örneğindeki ayrılmamış CPU ünitelerini diğer kapsayıcılarla paylaşır. Bu parametre , Oluşturma'daki CpuShares ile eşleşir. Docker Uzak API'sinin bir kapsayıcı bölümü ve docker'ın çalışması için --cpu paylaşım seçeneği. "

Bir t2.medium'un 2 vCPU'su vardır, bu nedenle zaman aşımına uğramak üzere 2,048 kullanılabilir CPU birimine sahiptir. Eğer ev sahibi üzerinde çalışan tek bir konteyner istiyorsanız, tüm 2,048 CPU ünitelerini bütçenize ayırabilirsiniz, ancak o ana makineye başka hiçbir konteyner yerleştirilemez.

Konteynerler, en az bütçelenmiş CPU'larına ihtiyaç duyduklarında, her zaman numaralı telefonu almayı garanti ederler. Buna ek olarak, CPU üniteleriyle ilgili net bir şey de, konteyneri başka bir konteyner kaynağa götürmüyorsa, bir konteynerin tahsis edilmiş birimlerinin üzerine çıkabileceğidir. Örneğin, her biri 1.024 bütçeli CPU birimine sahip bir t2.medium üzerinde çalışan iki göreviniz varsa, diğer görev tamamen boş olduğundan, her bir görev ayrı ayrı 2,048'e kadar patlayabilir. Ana bilgisayarları bu şekilde paylaşmaya başladığınızda, ECS'yi kullanarak maliyet tasarrufunu gerçekten sıkıştırabilirsiniz. Ayrıca, tüm CPU birimleri bütçelendirilmemişse, ECS, kalan CPU ünitelerini otomatik olarak bütçelenmiş CPU birimleri oranında her bir kaba ayırır. Bu nedenle, her biri 0 CPU birimi olan bir t2.medium üzerinde çalışan iki göreviniz varsa, başka bir konteyner bunları ayırmadığından her bir konteyner 1.024 CPU birimine etkili bir şekilde sahip olacaktır.

Burada dikkat edilmesi gereken bir nokta, hafızanın biraz farklı çalışmasıdır; bu zor bir limit. Kapsayıcı bütçelendiğinden daha fazla bellek ayırmaya çalışırsa, görev/kapsayıcıdan çıkar. CPU ünitelerini yetersiz bir şekilde ikna edebilir ve genellikle bununla birlikte uzaklaşabilirsiniz (çünkü konteynırlar, tedariklerinin üzerinde olabilir), ancak Hafıza ihlallerinizde kaldığınızdan emin olmalısınız.


Örnek: 0 olarak ayarlarsanız , bu ayrılmamış CPU orantılı miktarda alacaktır. verilecek Bu durumda , hem Görev 1. ve Görev # 2: 0 CPU üniteleri - 0 CPU üniteleri, Görev # 2 -

Görev # 1: Varsayalım bu senaryolar 2048 işlemci birimleri ile t2.mediums Hangi 1,024 CPU ünitesi, 2,048 adet izinsiz ünite olduğu için. Görevler CPU ünitesi rezervasyonları için 1: 1 olduğundan, ikisi de mevcut CPU ünitelerinin eşit bir payını alacaklardır.

Görev # 1-0 CPU üniteleri, Görev # 2 - 1.024 İşlemci birimleri: Görev 2. 2.048 CPU üniteleri verilecek ve 1.024 kullanılmayan işlemci birimleri bölmek çalışıyor çünkü Görev 1. 0 verilecektir 0: 1.024 oranında.

Görev # 1 - 0 CPU üniteleri: Makinede sadece bir görev varsa, tüm üniteler kullanılmadığı için tüm 2,048 CPU birimi verilecektir, bunlar, rezervasyonların bir oranına göre kaplar arasında bölünmüştür.

+0

Bana yardım ettiğin için teşekkürler, ama bir sorum daha var. CPU'yu sıfıra ayarladığım ve burada varsayılan bir değere sahip olduğumuzda ne olur? Şimdiden teşekkürler. – nightmare

+0

Birkaç örnek ekledim. – louahola

+0

Çok teşekkür ederim !!!! Şimdi açık. – nightmare