VMxnet3 vs E1000 – Network Throughput | VMware Virtualization Blog
Tayfun DEĞER tarafından 22 Kasım 2014 tarihinde VMware, VMware ESXi kategorisine yazıldı.
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.
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.
e1000 network kartı vmxnet3 10Gbps vmxnet3 mu e1000 mi?