VMXNET3 arabellek boyutlandırma ve bellek kullanımı alır


12

Arka fon

Windows yük devretme kümesinin kesintiye uğradığı bir olay yaşadık. Ölüm sonrası , düğümün bu makalede anlatıldığı gibi "kaldırıldığını" göstermiştir .

Kısa bir süre önce bu kümeyi VMware ortamımıza tamamen taşıdık ve yukarıda açıklanan olayın kesinti nedeni olduğu anlaşılıyor.

Bununla ilgili VMware KB makalesi , Small Rx Buffersve Rx Ring #1ayarının artırılması hakkında konuşuyor , ancak bunları çok fazla artırmanın ana bilgisayardaki bellek ek yükünü önemli ölçüde artırabileceğine dikkat ediyor.

Network Interface\Packets Received Discarded~ 150 Windows VM'lerimiz için performans sayaçlarının denetlenmesinden sonra , 16 konuktaki 22 vNIC'de bazı atılmış paketler vardı.

Ek bellek kullanımı ile ana bilgisayarları vergilendirmekten endişe etmeyeceğim kadar küçük bir miktar, ancak bu ayarlar için belleğin nasıl kullanıldığını ve belleğin nereden geldiğini anlamak istiyorum.

Sorular

  1. Tampon sayısı ile halka büyüklüğü arasındaki ilişki nedir?
  2. Bu ayarların belirli değerleri için kullanılan bellek miktarı nasıl hesaplanır?
  3. Bu ayarlar konuk işletim sistemi içinde NIC üzerinde olduğundan, sürücü ayarları olduğunu varsayıyorum. Bu, kullanılan RAM'in disk belleği olan veya disk belleği olmayan havuz olabileceğini düşündürüyor.
    1. Bu doğru mu?
    2. Öyleyse, bu konuda endişelenmeli miyim?
  4. Burada dikkate almadığım endişeler var mı?

Bunları, etkilenen VM'lerde VMware ana bilgisayar bellek kullanımı dışında maksimum değerlerine ayarlamanın bir dezavantajı olup olmadığını belirlemeye çalışıyoruz. Örneğin, havuz belleğinin konukta tükenme riskini artırıyorsak, küçük başlamaya daha meyilliyiz.

Bu soruların bazıları (belki de tümü) VMware veya sanallaştırmaya özgü olmayabilir.


Fiziksel NIC'in TCP boşaltma motoru yanlış davranırken ve VM'ler tuhaf davranışlar sergilediğinde gerçekten lapa lapa şeyler gördüm, takip edebileceğiniz bir ipucu olabilir.
SpacemanSpiff

@SpacemanSpiff kontrol etmeye değer, ancak 150'den sadece 16 VM davranışı sergiliyor. Bu 16 tanesi 12 düğümlü kümeye yayılmıştır ve hepsi KB makalesinde açıklanan belirtileri tetikleyen şey gibi görünen yüksek trafik patlamaları alırlar. Bunlardan bazıları Windows kümeleridir, bu nedenle DRS ile hareket etmezler, aksi takdirde etkilenen tüm konukların vMotion'lanmadan önce belirli bir ana bilgisayardayken bırakılan paketleri gösterip göstermediğine bakabilirim. Tekrar kontrol edip herhangi bir korelasyon bulabileceğimi göreceğim. Teşekkürler.
briantist

Mikro patlama belki de bu hangi donanım?
SpacemanSpiff

@SpacemanSpiff IBM sunucuları, birkaç farklı model ve revizyon, ayrıca hangi NIC'lerden emin değilim, yarın özellikleri kontrol edebilirim.
briantist

Yanıtlar:


5

Tampon sayısı ile halka büyüklüğü arasındaki ilişki nedir?

İlişkili ancak bağımsızlar. Rx "ring", gelen ağ paketlerini ana bilgisayardan (hipervizör) konuğa (Windows VM) aktarmak için kuyruk olarak kullanılan bellekteki bir dizi arabelleği ifade eder. Bellek, konukta ağ sürücüsü tarafından ayrılır ve ana makine belleğine eşlenir.

Ana bilgisayara yeni ağ paketleri geldiğinde, halkadaki bir sonraki kullanılabilir arabelleğe yerleştirilir. Daha sonra, ana bilgisayar konukta bir IRQ tetikler ve konuk sürücünün paketini halkadan alıp onu konuk işletim sisteminin ağ yığınına gönderir ve muhtemelen onu almak isteyen konuk uygulamasına gönderir. Paketlerin yeterince yavaş geldiğini ve konuk sürücünün bunları yeterince hızlı işlediğini varsayarsak, halkada her zaman boş bir yuva olmalıdır. Ancak, paketler çok hızlı geliyorsa veya konuk bunları çok yavaş işliyorsa, halka dolar ve paketler atılabilir (durumunuzda gördüğünüz gibi).

Yüzük boyutunun arttırılması bu sorunun azaltılmasına yardımcı olabilir. Artırırsanız, bir seferde halkada daha fazla yuva bulunacaktır. Bu, halkadaki yuvaları doldurmak için kullanılabilecek toplam tampon miktarı olan ikinci ayar olan "Küçük Rx Tamponları" na bakar. Halkadaki yuvalar kadar en az tampon olmalıdır. Genellikle daha fazlasını istersiniz. Konuk, konuk ağ yığınına vermek üzere halkadan bir arabellek aldığında, her zaman derhal sürücüye geri gönderilmeyebilir. Bu durumda, halkayı doldurmak için yedek tamponlara sahip olmak, paketleri düşürmeden daha uzun sürebileceğiniz anlamına gelir.

Rx Ring # 1 / Küçük Rx Tamponları jumbo olmayan çerçeveler için kullanılır. Varsayılan bir NIC yapılandırmanız varsa, kullanılacak tek halka budur.

Bu ayarların belirli değerleri için kullanılan bellek miktarı nasıl hesaplanır?

Jumbo olmayan çerçevelerden bahsettiğinizi varsayarsak, her arabellek kabaca 1,5 kb olan bir ağ paketinin tamamını depolayacak kadar büyük olmalıdır. Dolayısıyla, 8192 tamponunuz varsa, bu 12MB kullanır. Daha büyük bir halka daha fazla bellek kullanır, ancak tanımlayıcılar küçüktür (bayt), bu yüzden endişelenmeniz gereken tamponlar gerçekten.

Bu ayarlar konuk işletim sistemi içinde NIC üzerinde olduğundan, sürücü ayarları olduğunu varsayıyorum. Bu, kullanılan RAM'in disk belleği olan veya disk belleği olmayan havuz olabileceğini düşündürüyor.

Evet, disk belleği olmayan bir havuz. Halka arabellekleri sayfalanmış olsaydı, arabellekler tekrar içeri aktarılırken paketlerin düşürülmesine neden olabilir.

Burada dikkate almadığım endişeler var mı?

Bunun durumunuzla ilgili olduğundan emin değilim, ancak daha büyük bir halkanın ağ rx yolunun önbellek ayak izini artıracağına dikkat etmek önemlidir. Mikrobenç işaretlerde, daha büyük bir halkanın genellikle performansı bozduğunu göreceksiniz. Bununla birlikte, gerçek yaşam uygulamalarında, bir paket düşürülürse, bu genellikle hız patlamasında küçük bir performans kazancından daha büyük bir anlaşmadır.

Kaynak: VMware'de çalıştım.


1
Teşekkürler Roger, mükemmel ilk cevap. Bir süredir bu şirkette bulunmadım, bu yüzden bu sorun radarımdan çok uzaktı, ancak tamlık için, bunları maksimumlarına ayarlamak için bir bellek kullanımı endişesi var mı? KB makalesi, bu şekilde çok fazla bellek kullanabileceğiniz gibi geliyor, ancak miktar oldukça küçük gibi görünüyor. Bunu soruyorum çünkü deneme ve hata dışında bu değerlerin nasıl boyutlandırılacağı belirsizdir, bu nedenle / küçük bir dezavantaj yoksa bunları maksimuma ayarlamak en kolay olabilir.
Briantist

1
Re: bellek kullanımı, iki şey dikkat: 1) jumbo çerçeveler kullanmıyorsanız, kabul ediyorum, maksimum ayardaki bellek miktarı hala oldukça küçük. Jumbo çerçeveler kullanıyorsanız, arabellek boyutu 9kb civarındadır ve bu nedenle daha fazla bellek kullanırsınız. 2) Disk belleği olmayan bir havuzda kullanılabilir bellek miktarı, ana bilgisayardaki toplam bellek miktarından daha azdır. Burada bir uzman değilim, ancak bu bağlantının kullanılabilir belleği hesaplama konusunda oldukça kapsamlı bir yıkımı var: blogs.technet.microsoft.com/markrussinovich/2009/03/10/…
Roger Jacobson

Harika teşekkür ederim. Umarım bu cevap gelecekte birisine yardımcı olur (belki tekrar tekrar karşılaşırsam ben bile olurum!)
Briantist

0

1-2-3 noktası için bir cevabım yok ama sanal mühendisinizle Vmware host config hakkında kontrol edebilirsiniz. O VCP ise o şeyleri anlayacak :)

Windows sorunları konuk değil ana bilgisayar olabilir çünkü gerçekten ev sahibi kontrol etmek zorunda.

Sorunlarınızı, directpath io, rss, vcpu, güç yönetimi şemasını açıklayabilecek birçok donanım özelliği var ...

Size sanal ekibinize yardımcı olacak bir bağlantı verebilirim, ya da :)

Bu bağlantı, sunucuyu ayarlamakla ilgilidir http://buildvirtual.net/tuning-esxi-host-networking-configuration/

Ve bu şişman pdf:

http://www.vmware.com/pdf/Perf_Best_Practices_vSphere5.0.pdf

Ve bu rss hakkında:

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2008925


Cevabınız için teşekkürler, ama ben bir VCP'yim. Bu aslında ana bilgisayar yapılandırmasıyla ilgili değil. Bağlantı verdiğim Microsoft makalesinde, söz konusu performans sayacının 0'dan yüksek olmaması ve birkaç VM'de olması gerektiği açıklanmaktadır. VMware KB makalede açıklananların ötesinde vNIC ayarları hakkında anlayış kazanmaya çalışıyorum.
briantist

-1

Sizi tam olarak arayacak ve doğru sayfaları gösterecek bir konumda değilim: bu yüzden sizden ayrıntıları kendiniz aramanızı istiyorum ... (üzgünüm)

Kümenin Üzerinde Başarısızlık bölümünde, tüvitlenebilen 4 ayar vardır; ve arabellekleri veya disk belleği olmayan veya disk belleği olmayanları etkilemezler ... Küme Üzerinde Başarısızlık, bir düğümü "kaldırıldı" olarak görme kararını verir. Bu ayarlar:

SameSubnetDelay SameSubnetThreshold CrossSubnetDelay CrossSubnetThreshold

Sorununuzu çözmeyebilirler, ancak bunları değiştirmek sizi şu anda beladan kurtarabilir ...

Pazartesi günü döndüğünüzde, başka sorularınız varsa bu gönderiyi tekrar kontrol edeceğim

HTH, Edwin.


Not: çalıştırmakta olduğunuz Windows sürümünü bize bildirir misiniz?
Edwin van Mierlo

Bu Windows 2008'di. VMware'den (tüm bu aylardan sonra) bir yanıt aldım, ancak bu gerçekleştiğim yerde bile değilim. Cevap basit değil ve cevaplarını okumak ve bir şeyler göndermek için anlam ifade ettim, ama zamanım olmadı. Küme ile ilgili ipuçlarınızı takdir ediyorum, ancak şu anda bunları deneyemiyorum.
Briantist

Sadece orijinal yazının birkaç aylık olduğunu fark ediyorum, bu android uygulamasında çok net değildi ... Bir dahaki sefere daha yakından bakacağım ... bu arada cevabım hala arama yapabilen diğer kullanıcılar için geçerli benzer deneyimler için.
Edwin van Mierlo
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.