VMxnet3 vs E1000 – Network Throughput
Merhaba,
ESXi host üzerinde 1gbit uplink var ancak virtual machine’e vmxnet3 network kart’ı takında 10gbit olarak görüyor. Acaba gerçekten 10gbit olarak kullanıyormu bu kartı? Hemen hemen her yaptığım projede bu soru ile karşılaşıyorum oyüzden bunu yazmaya karar verdim.
Virtual machine’e e1000 network kartı eklendiğinde 1gbit network kartı eklenmiş oluyor. İşletim sistemi içerisindende bakıldığında 1.0gbps gözüküyor. Ancak VMxnet3 network kartı eklendiğinde işletim sistemi içerisinden bakıldığında 10Gbps network kartı görülüyor. Durum bu şekilde olunca herkes şu şekilde bir soru soruyor. VMxnet3 network kartı ekli virtual machine’ler kendi aralarında nasıl haberleşir? Aslında bu sorunun cevabı basit ancak bunu biraz derinlemesine incelemek gerekli.
Öncelikle virtual machine’ler kendi aralarında haberleşirken (Aynı vlan veya arada vlan yok ise) gateway’e çıkmazlar. Dolayısı ile sizin uplink’lerinizi kullanmazlar. Uplink’leriniz ister 10gbit istersenizde 1gbit olsun, virtual machine’ler kendi aralarında haberleşirken bunu hiç baz almayacaktır.
Yukarıda görüldüğü üzere benim kullandığım uplink’ler 1000Mb full duplex olarak gözükmektedir.
Virtual machine üzerinde VMxnet3 network kartı takılı durumda. Network kartı özelliklerine girdiğimizde network kartının 10.0Gbps’de çalıştığını görüyoruz.
Peki bu nasıl oluyor?
Aslında burada değineceğim konuyu daha önce sitemde de yazmıştım. ESXi üzerinde Switch’lerin katmanları vardır. Detaylı bilgiye aşağıdaki link’den ulaşabilirsiniz.
Sizin oluştuduğunuz virtual machine’ler arka tarafta görünmeyen bir switch’e link’lenir. Bundan dolayı siz bir virtual machine’e VMxnet3 kart eklediğinizde 10Gbps olarak gözükmektedir. Eğer virtual machine’ler direk sizin uplink’lerinizi baz alsaydı ozaman virtual machine içindeki network kart’ıda 1000Mb olacaktı. Tabi böyle bir durum söz konusu değil.
Yukarıdaki şemadan’da görüldüğü üzere Virtual machine’lerin kullandığı network kart’ının bir Virtual Switch’e bağlı olduğu ve bu Switch’inde uplink’lere bağlı olduğu görülüyor.
Ben bunun testini çok basit birşekilde gerçekleştirdim. Öncelik ile 2 tane virtual machine oluşturuyorum ve bunların birtanesine Windows 8 diğerine ise Solaris 11 kuruyorum. Her iki virtual machine’inde VMtools update’lerini gerçekleştirdim. Tabi siz burada iki tane Windows 8’de kullanabilirsiniz. Tamamen size kalmış bir durum. Daha sonra network performans’ını test edeceğim iperf tools’u indiriyorum. Aşağıdaki link’den bunu indirebilirsiniz.
Iper’i indirdikten sonra hemen testlere başlayalım.
Ben bu test’de ilk başta E1000 network kartını test ediyorum. Her iki makinada’da iperf tool’u çalıştırdıktan sonra, Solaris’den iperf -c IP adresi komutu ile paketleri göndermeye başlıyorum. E1000 network kartı bildiğiniz üzere 1Gbps ile bağlantı sağlıyor. Yukarıda gördüğümüz dğerler’de zaten bunu doğruluyor. Bu arada şunuda belirteyim bu test yapılırken her iki makina üzerinde de E1000 network kartı takılı durumda.
E1000 network kartını gördükten sonra şimdi sırada VMxnet3 network kartı:) Testleri gerçekleştirdiğim her iki makina üzerindede VMxnet3 network kartı takılı durumda. Yine yukarıda ki test’de olduğu gibi her iki makinadada iperf’i çalıştırıp iperf-c IP adresi ile paketleri göndermeye başlıyoruz. Yukarıda da gördüğünüz gibi 11.3 Gbits gibi bir değer görüyorum. VMxnet3 normalde zaten 10 Gbps ile bağlanıyor.
Burada dikkat etmeniz gereken konu, eğer yeni bir virtual machine oluşturuyorsanız mutlaka ve mutlaka VMxnet3 kullanın. VMxnet3 10Gbps ile bağlanıyor, bu durum virtual machine’lerin kendi aralarında daha hızlı haberleşmesine olanak sağlıyor. Ayrıca VMxnet3’ün bir virtual machine’e faydası sadece network throughput’u değil. Ben yukarıda ki test’leri yaparken e1000 network kartının trafik anında VMxnet3’e göre %25 daha fazla CPU tükettiğini tespit ettim. Zaten VMware’in kendi dökümanlarındada yer alıyor. VMxnet3, E1000’e oran ile daha az CPU tüketiyor.
Umarım faydalı olmuştur.
İyi çalışmalar.
çok tşk. çok yararlı bir döküman olmuş. elinize sağlık.
Teşekkürler.
Çok başarılı makale, teşekkürler…
Aylardır yaşadığım problemin çözümündeki ilk adımım oldu. Ellerinize sağlık.
Çok teşekkürler.
Ellerine sağlık Tayfun Hocam
Çok teşekkürler.
Merhabalar Tayfun Bey, bilgilendirme için çok teşekkürler. Basit bir sorum olacak daha net anlamak için, VM servera bağlı tüm fiziksel kabloları söksek dahi VM içindeki sunucuların birbirileri ile iletişimleri devam eder mi? Yoksa fiziki bir kablonun bir switche bağlı olması şart mıdır bu adaptörün aktive olabilmesi için?
Şimdiden teşekkürler,
Deha.
Çok güzel bir soru. Fiziksel sunucunun uplink’leri down olsa veya hiç uplink olmasa bile virtual machine’lerdeki network kartı down durumda olmaz. Çünkü siz bir sanallaştırma yapıyorsunuz ve tüm donanımınızı sanallaştırıyorsunuz. Bundan dolayı uplinkler down olsa bile aynı VLAN ve aynı switch’de olan virtual machine’ler kendi içerisinde haberleşmeye devam eder.
Hocam merhaba,
Mevcut VM’lerde network adaptörler E1000E olarak yapılandırılmış ve bu şekilde kullanılıyor. Bunları Vmxnet3 olarak değiştirsek bir problem yaratır mı? Bu konudaki tecrübeleriniz nelerdir?
Merhaba,
Hayır herhangi bir sorun olmaz, sadece yeni network kartı verdikten sonra tekrar IP vermeniz gerekecektir.