Hipervizör taban mı, bulut bilişim mi?

  • Mayıs 2020

Bilgisayarların veri merkezleri altyapısı için en çok “hipervizör tabanlı sanallaştırma teknolojileri” ve bulut bilişim diye bilinen “konteyner teknolojileri” kullanılıyor. Peki hangisi, hangi alanda daha güçlü, hangisi geri kalıyor?

Günümüzde bilişim alanındaki teknolojik gelişmeler, internet hızlarındaki artış, bellek hızlarında ve güçlerindeki artışlar, bilgisayarların ve akıllı telefonlarla bağlı hayatlar yaşamamıza neden oluyor. Akıllı telefonlar yüksek internet hızı ile her an ve her yerden ihtiyaç duyduğumuz verilere erişim sağlamamıza olanak sunuyor. Otobüs ile yolculuk yaparken sinema bileti alabiliyor hatta ev varmadan yiyecek siparişimizi verebiliyoruz.

Günlük hayattaki bu kullanımlar ve endüstride işlenecek olan verilerin boyutlarının büyümesi, daha yüksek kaynak ihtiyacı olan yazım ve uygulamaların geliştirilmesine ve yaygınlaşmasına neden oluyor. Bu talepleri karşılamak için gerek bilişim altyapılarında kullanılan sunucu sayılarında, gerekse sunucularda kullanılan fiziksel kaynaklarda büyük artışlar yaşanıyor.

Bu devasa büyüme beraberinde birçok sorun getirdi.Sunucuların yönetimi, güncellenmesi, yedeklenmesi, bakım işlemleri, veri merkezlerinde kapladıkları alanlar, elektrik tüketim maliyetleri gibibirçok yönetimsel ve finansal problem doğdu.

Ve asıl soru ortaya çıktı: Kapasite belli, peki verim artar mı?

Sanal alemin liderlerine bakıldı

Bilgisayar dünyasında veri altyapısı için kullanılan “hipervizör tabanlı sanallaştırma teknolojileri” ve bulut bilişim denilen “konteyner teknolojileri” en çok kullanılan iki teknoloji… Bu teknolojiler, günümüzde kullanılan veri merkezlerinin altyapılarını oluşturuyor. Bu iki teknoloji; verimlilik, yönetim kolaylığı, güvenlik gibi birçok faydalar nedeniyle tercih sebebi. Ancak faydası kadar zararı da var; fiziksel kaynaklar ile işletim sistemleri ve uygulamalar arasında giren sanallaştırma katmanları ve yazılımlar performans kayıplarına neden oluyor… Ayrıca teknolojilerin arasındaki farklılıklar, farklı donanım katmanlarında farklı performans değerlerinin alınmasına neden oluyor.

Sanallaştırma teknolojisi seçimi yapılırken uygulama özellikleri ve kullanılacağı iş yüküne göre seçim yapmak elde edilecek faydayı artıran iki neden. Bu nedenle performans kayıp oranlarının donanım kaynakları için ölçülmesi ve karşılaştırılması hayati değerde.

Maltepe Üniversitesi Bilgisayar Mühendisliği Anabilim Dalı’ndan Ali Doğru, “Sunucu Sanallaştırma ve Uygulama Sanallaştırma Teknolojileri Performans Karşılaştırması” konulu teziyle tartışmaya yeni bir boyut getirdi. Yaptığı araştırmada, sektörde en çok kullanılan Vmware ve Docker teknolojilerini mercek altına alan Doğru fiziksel donanımları ayrı bir etki alanı olarak ele aldı, her bir etki alanı için ayrı testler yaptı ve elde edilen sonuçları bilimsel verilerle karşılaştırdı. Sonuçta Docker konteyner teknolojisinin testlerin büyük çoğunluğunda Vmware çözümünden daha iyi performans gösterdiğini kanıtladı.

Teknoloji uyumluluğu sürekli değişiyor

İşlemci, bellek, network, sabit disk gibi sunucu donanımlarındaki yeni gelişmeler ve bunların sanallaştırma teknolojileri ile uyumluluğu her geçen gün değişiyor. Bundan dolayı sanallaştırma teknolojileri arasında performans kayıp oranları farklılaşabilir.  Doğru, araştırmasında hedeflenen sunucu sanallaştırma market lideri Vmware ve konteyner tabanlı sanallaştırma market lideri Docker teknolojilerini güncel donanımlar ve yazılımlar üzerinde çalıştırarak; işlemci, bellek, sabit disk gibi fiziksel kaynaklar, üzerinde farklı senaryolar ile performans verilerini karşılaştırıp, karar verme aşamasında değerlendirmek üzere güncel bir analiz sundu. Endüstride sıkça kullanılan LAMP (Linux, Apache, MySQL, PHP vs) kurulumu üzerinde farklı büyüklüklerdeki yük altında nasıl davrandığı değerlendirilip, analizlerine de baktı.

İşlemci, disk, bellek ve networke bakıldı

Günümüzde kurumsal veri merkezlerinde ve bulut bilişim ortamlarında sıklık ile kullanılan sanallaştırma ve konteyner teknolojilerinin fiziksel sunucuya göre ve birbirlerine göre performans değerlerini karşılaştırmak, hangi teknolojinin hangi durumlar ya da hangi uygulama tipleri için daha uygun olduğunu görmek; en önemli ipucu.

Bu nedenle ilk olarak, bir sunucunun performansı belirleyen donanımlarının yani işlemci, disk, bellek ve network donanımları ayrı ayrı bir etki alanı olarak ele alıp, bu ayrı alanlar üzerinde ayrı ayrı testler yapıldı. Sunucuların ve işletim sistemlerinin yapısı gereği bu alanları birbirinden tamamen ayrılıp test edilmesi imkânsız olduğundan, üçüncü parti yazılımlar ile bu etkileşimi en aza indirmeye çalışıldı. Son olarak bu donanımların birlikte hizmet verdiği bir ortam üzerinde okuma, yazma işlemleri testleri gerçekleştirildi. Yapılan testlerde iki teknoloji arasında farklılıkların, boyut, süre ve yapılan işlemlerin türüne göre farklılık gösterdiği görüldü.

Performans kayıpları en çok nerede?

İki teknoloji arasında en büyük fark depolama alanlarına yapılan yazma ve işlemci yoğun işlem olan veri sıkıştırma işlemlerinde çıktı. En az fark ise network bant genişliği ve mesaj boyutuna bağlı olarak network gecikme sürelerinde görüldü.

Disk yazma işlemlerinde Vmware sanal makinesi, Docker konteynerine göre yüzde 30’un üzerinde daha az performans gösterdi. Bu boyuttaki işlemlerde Docker konteyneri yüzde 1 kadar performans kaybı gösterdi. Disk okuma işlemlerinde de Docker konteyneri Vmware ’den veri büyüklüğüne bağlı olarak yüzde 6 ile yüzde 28 arasında daha iyi performans gösterdi. Veri boyutu büyüdükçe performans farkının arttığı görüldü.

İşlemci performans testlerinde veri sıkıştırma, kayan nokta, şifreleme ve tam sayı matematik işlemleri yaptırıldığında ise, veri sıkıştırma işlemlerinde 108, 109 ve 1010 bayt boyutunda veri setleri kullanıldı. Bu işlemlerde veri boyutu arttıkça Docker konteynerinin ve Vmware sanal makinesinin performansı arttığı görüldü. Şifreleme işlemlerinde de Docker konteyneri yüzde 23 daha iyi performans gösterdi.

Sunucu sayısı arttıkça sonuç değişebilir

Sonuç olarak gelecekte yapılabilecek çalışmalar için, bu çalışmada tek bir fiziksel kaynak üzerinde tek bir sanal makine ya da tek bir konteyner çalıştırılmış oldu ve mevcut fiziksel kaynaklar başka istemciler ile paylaşılmadan sadece bu ortamlara ayırıldı.

Ancak günümüz veri merkezlerinde ve bulut bilişim ortamlarında bu fiziksel kaynaklar birden fazla sanal sunucu ya da konteyner tarafından paylaşılıyor. Böyle bir durumda sunucuların ya da konteynerlerin performans değerlerinde değişiklikler olabilmesi de muhtemel. Üstelik, hipervizör katmanının ve çekirdek sistemin sınırlı kaynakları birden fazla sunucu ve konteyner arasında paylaştırılması ve yönetmesi de ayrı problem ve performansı değerlendirilmesi gereken bir sorun olarak yerli yerinde duruyor…