En İyi Uygulama: Fiziksel çekirdek başına vCPU


27

Fiziksel çekirdek (CPU'nun) başına vCPU sağlama ile ilgili sanallaştırma için bazı belgeler veya en iyi uygulama rehberleri bulmaya çalışıyorum. Önemli olursa, sanallaştırma uygulaması için vmWare'ye bakıyorum. Örneğin, bir Intel Xeon CPU'su 4, 8 vb. Çekirdeklere sahip olabilir. Her bir fiziksel çekirdek için yalnızca bir vCPU'dan daha fazlasını sağlama konusunda daha fazla şey öğrenmekle ilgileniyorum. Bahsettiğim satıcı, kesinlikle tek bir çekirdeğin birden fazla vCPU'ya sağlanabileceğini düşünüyor.

Araştırmamda şu ana kadar sıkça gördüğüm şey "Şey, uygulamanıza bağlı." Ve bu durumda, uygulamam kod düzenleme, derleme / bağlama, test etme ve yapılandırma yönetimidir. Elbette tüm VM'lerin çekirdek başına birden fazla vCPU ile yapılandırılması gerekmez, ancak genel durumda.

Yanıtlar:


24

Tek bir fiziksel CPU birçok vCPU olarak kullanılabilir. Sanallaştırma çözümlerinde nadiren CPU kaynakları tükeniyor. RAM ve depolama her zaman sınırlayıcı faktörlerdir ...

Unutmayın, VMware'de CPU kullanımı, kullanılan MHz'de temsil edilir, çekirdek değil ... Tüm sanal CPU'larınızı% 100 TÜM ZAMANLADIĞINIZDEN , satıcınızın doğru olduğunu sanmıyorum.

Aşağıdaki sistem kümesine bakalım ...

  • 9 ESXi ana bilgisayarı.
  • 160 sanal makineler
  • Küme boyunca 104 fiziksel CPU çekirdeği.
  • Ortalama sanal makine profili: 4 vCPU ve 4 GB ila 18 GB RAM.
  • İşlemci güvenli bir şekilde abonelikten çıkarılabilir ... ama unutmayın, VM düzeyinde de sınırlı, ayrılmış ve öncelikli olabilir .

görüntü tanımını buraya girin görüntü tanımını buraya girin

başka bir aktif kümeden - 3 42 sanal makineyi barındırıyor görüntü tanımını buraya girin


4
3936 VMotion göçler gördükten sonra ben bizim 1,200 hakkında çok kötü hissetmiyorum
Mark Henderson

2
Dün VM kümemizdeki istatistiklere bakıyordum ve bu rakam @white tarafından verilen rakamları ortaya koyuyor. 24 işlemcimiz ve 55 GHz olmak üzere 3 sunucumuz var. Tahsis edilen toplam 79 vCPU ile 59 VM'imiz var. VSphere'in istatistiklerine göre, son 6 ay boyunca, kullanılan 14 GHz'in biraz üzerinde bir değer elde ettik (en az 9 GHz, en fazla 25 GHz) ve bu süre zarfında 0 CPU Çekirdek Sayımı Çekişmesi vardı.
Paul Gear,

7

Ewwhite'nin yazımını genişletmek için, çoklu vCPU'lardan veya vCPU başına çoklu çekirdeklerden açıkça yararlanabilecek uygulamalarınız yoksa, bir VM'ye çoklu vCPU / çekirdek tahsis etmede kesinlikle sıfır fayda vardır. Aslında, çoğu kez değil, aslında birden fazla vCPU'yu çalıştırmak için gereken zamanlama ek yükü nedeniyle kendisine atanmış bir çekirdeği olan tek bir vCPU'da çalıştırmanın aksine, daha düşük performansla sonuçlanacak.

FWIW, VDI ayarlarında sıkça belirtilen sayı fiziksel çekirdek başına 5 vCPU'dur. Tabii ofis işleri masaüstünü dikkate alıyor. VM'leriniz her zaman kod derleme ile gerçekten meşgulse, fiziksel çekirdek başına 5 vCPU'yu sığdıramayabilirsiniz.

Bu kadar çok insanın "bağlıdır" demesinin sebebi gerçekten öyle olmasıdır. CPU Ready değerlerine bakın ve sonra belirli bir sisteme daha fazla CPU yükü yükleyip yükleyemeyeceğinize karar verin. CPU Ready, vCPU'nun bir komutu yerine getirmeye hazır olduğunun bir ölçüsüdür ancak fiziksel CPU süresinin kullanılabilir hale gelmesini beklemek zorundadır.

Sizin durumunuzda, büyük programlar derliyorsanız, VM'leriniz gerçekten çok fazla CPU zamanına ihtiyaç duyacaktır. Daha önce de belirtildiği gibi, normalde sanallaştırma işlemcinin kısıtlı olması yerine, işlemcinin kısıtlaması yerine, disk G / Ç ve RAM ile sınırlıdır.


13
absolutely zero benefit in allocating multiple vCPUs/cores to a VM- tamamen doğru değil. Haftalık olarak takılan eski bir iş parçacıklı uygulamamız var. Tek bir vCPU% 100 iken, bu sisteme girmek imkansızdı ve VM'nin hiper yönetici seviyesinde sıfırlama yapmak zorunda kaldık. 2. vCPU'yu ekledik ve uygulama askıya alındığında, rahatsız edici konuyu kolayca girip öldürdük. Bu biraz ileri düzeyde bir dava, doğru, ancak asla mutlak işlemlerle baş edemezsiniz.
Mark Henderson

4
Mark'ın yazdığı şey, iki çekirdeği her VM için alt sınır olarak kullanmamızın nedeni - ihtiyaç duyup duymadıklarına bakılmaksızın.
Nils,

2
Hazır değer, sunucunuzu sağlama konusunda aşırı olup olmadığınızı söylemenin en iyi yoludur, hazır değerinizin mümkün olduğu kadar düşük olması gerekir. Bir VM'nin bir CPU döngüsü kullanmak için "hazır" olduğu zaman yüzdesidir, ancak CPU başka bir görevle meşgulken beklemek zorundadır. Neden vm'nize birçok çekirdeğin performans etkisi sağlayabileceğini açıklamak için basit bir örnek kullanacağım: 4 fiziksel çekirdeğim ve 4vms'im varsa, 2 çekirdekli 3 VM ve 4 çekirdekli bir vm varsa, daha küçük VM'leriniz etkin olarak katları daha iyi "sığ" olarak daha fazla döngü. Vcpus ile mümkün olduğunca muhafazakar gidin!
Rqomey

@MarkHenderson Bunun nasıl faydalı olabileceğini görebiliyorum ve böyle bir şey, derleyicilerle çalıştığından beri soruyu soran adamın başına gelebilecek bir şey olabilir.
Reality Extractor,

@Nils Her VM 2 çekirdeğine bunun bir iş ihtiyacının olup olmadığının verilmesinin gerçekten kötü bir fikir olduğuna inanıyorum. Sizi kolayca olumsuz yönde etkileyebilir, slot büyüklüğü, yeniden başlatma / yük devretme için yeterli çekirdek mevcut değil, Rqomey'in yazdığı şey nedeniyle performans kaybı, sayısız şey. VM'nize her zaman vCenter ve DCUI aracılığıyla girebilirsiniz.
Reality Extractor

3

Temelde yatan sorun temel olarak fiziksel bir sistemde işlem programlaması ile aynıdır. Sistem yükü çekirdek sayısının altında olduğu sürece (veya HyperThreading durumunda mantıksal işlemciler bile) her şey yolundadır ve işlemciler yükü kaldırabilir.

Kullanılan tüm vCPU'lardaki eşzamanlı yük, fiziksel çekirdeğiniz tarafından taşınabilecek yükü aşmadığı sürece, her şey yolundadır.

Talepleriniz için sadece derleme sadece zaman zaman ihtiyaç duyulan bir CPU-intesif çalışmasıdır. Derleyici-VM'ler için mümkün olduğunca çok CPU tahsis ediyoruz. Bu nedenle, derlemeye ihtiyaç duyulursa, mümkün olan en hızlı şekilde yapılır (derleyiciniz paralell derlemeyi destekliyorsa).

Bu, sürekli yük altında olan bir derleyici-VM için doğru olmayabilir (örneğin, derlemeler yapmak için bir internet hizmeti sağlıyorsanız ve sürekli kullanılıyorsa).


2

Gördüğüm en temel kurallardan biri (muhtemelen VMware'in dokümantasyonunda), ana makinede fiziksel olarak var olandan daha fazla çekirdek tahsis etmemektir; çünkü bu, tek bir çekirdekte birden fazla vCore'un taklit edilmesine neden olur ve gereksiz ek yük sağlar.


1
Peki ya tersi? 6 çekirdekli bir Xeon'um varsa ve VM'de yalnızca 4 çekirdeği tahsis edersem ne olur? O zaman performans ne olurdu? VM sistemi 6 fiziksel çekirdeğin hepsinden güç alabilecek mi yoksa 4 ile sınırlı olacak mı?
Aşırı

Yalnızca 4 çekirdeği verirseniz, bir seferde yalnızca 4 çekirdeğe erişebilir. Ancak benim anladığım (onaylanmayan), bu 4 sanal çekirdeğin, sabitlemeyi yapılandırmadığınız sürece, 6 fiziksel çekirdeğin 4'ünde tahsis edilebileceğidir.
Paul Gear,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.