Huawei Cloud — Paylaşımlı Sunucu ile Ayrılmış Sunucu Farkı ve ECS Performans Testleri
Yaklaşık bir ay önce başlayan Huawei Cloud Practicum eğitim sürecinin ortasına gelmiş ve Huawei Cloud servislerinde kullanabileceğimiz kuponlarımız da tanımlanmış olduğundan eğitimin daha yararlı olması ve ileride de faydalanılacak bir kaynak yaratma amacıyla yeni testler yapıp blogumda paylaşıyorum.
Basitçe açıklamak gerekirse paylaşımlı sunucu (shared server), bir fiziksel sunucunun birden çok kişi veya kurumun ihtiyaçları için kullanması amacıyla yazılımsal olarak sanallaştırılarak bölünmesidir. Sanallaştırma ve bölme işlemleri sonucunda çok yüksek işlem yeteneğine sahip olan bir fiziksel sunucu daha fazla sayıda ve yeterli olabilecek seviyede işlem yeteneğine sahip birden çok sanal sunuculara paylaştırılmış olur. Farklı kullanıcıların işletim sistemleri, uygulamaları ve dosyaları tek bir fiziksel sunucuda barınabileceği için bu sunucu tipine paylaşımlı sunucu denir. Huawei Cloud’da bulunan paylaşımlı sunucu yapısına benzer olarak ECS (Elastic Cloud Server) servisi gösterilebilir. Aslında paylaşımlı olsa da bu tipteki sunucularda kullanıcı için belirli bir kaynak ayırılır. Fiziksel sunucudaki diğer kullanıcılarla eşit paylaşım için bazı kullanım limitleri bunulur. Deneme ve eğitim amaçlı projeler için kullanılması uygundur.
Ayrılmış sunucuyu (dedicated server) ise adından anlaşılabileceği üzere tamamen size özel kiralanmış sunucu olarak düşünebilirsiniz. Sunucunun tamamını kiraladığınız için maliyeti yüksektir. Huawei Cloud servislerinden biri olan BMS (Bare Metal Server) servisi özelliklerinde belirtildiği gibi tamamen size ayrılmış bir sunucu kiralama imkanı sağlar.
Görüldüğü gibi sistem özellikleri oldukça yüksektir ve bu sebeple ücreti de yüksek bir servistir. Sunucu isimlerinin “physical.” ile başlamasından ise fiziksel bir sunucu kiraladığımız sonucunu çıkarabiliriz. Ayrılmış (dedicated) sunuculardan olan BMS ücreti yüksek bir servis olduğu için ve kullandıkça öde seçeneği (pay-per-use) olmadığı için bu sunucuların testini yapmam mümkün olmadı.
Ayrılmış sunucuların testini yapamasam da farklı boyutlardaki ECS’ler için testler yaptım. Bu testler sayesinde farklı sunucuların işlem gücü hakkında bilgi sahibi olabilirsiniz ve aynı testleri farklı sunucularda ya da bilgisayarlarda tekrarlayarak karşılaştırma imkanınız olur. Örneğin kendi bilgisayarınızda çalıştırdığınız bir projeyi sanal sunucu üzerine yükleyip çalıştırmadan önce kendi bilgisayarınızın işlem gücünü test edip test sonuçlarına göre uygun sanal sunucuyu kiralayabilirsiniz. Böylece sanal sunucu üzerinde deneme yapmaktan doğacak ücretten tasarruf etmiş olabilirsiniz. Aslında Huawei Cloud servislerinin birçoğunda bulunan özelliklerinden biri olan ölçeklenebilirlik ( scalability ) sayesinde bu sorunun oluşmasının önüne geçilmiştir. Yine de genel bilgi olması açısından bu testlerin faydalı olacağını düşünüyorum.
1. En düşük sistem özellikleri ile performans testleri— 1 vCPU 2 GiB RAM’li ECS ( s2.medium.2 )
ECS hazır ve çalışır hale geldikten sonra remote login ile sunucuya bağlanıp testlere başlayabiliriz.
yum install fio
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=random_read_write.fio --bs=4k --iodepth=64 --size=250M --readwrite=randrw --rwmixread=100
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=random_read_write.fio --bs=4k --iodepth=64 --size=250M --readwrite=randrw --rwmixread=0
HDD testleri için kullandığım komutlar yukarıdadır. İlk satırdaki kod fio yazılımını yüklemeye yarar. İkinci satırdaki kod okuma testi ve üçüncü satırdaki kod ise yazma testini çalıştırır.
yum install sysbench
sysbench --test=memory --memory-block-size=1M --memory-total-size=100G run
sysbench --test=memory run
sysbench --test=cpu --threads=1
RAM ve CPU testleri için yukarıdaki komutları kullandım. Üçüncü satırdaki komut sysbench yazılımını RAM testi için varsayılan parametreler ile çalıştırmaya yarar. RAM testinde önceki yazımda bulunan sonuçlar ile de karşılaştırma yapılabilmesi açısından hem önceki yazımda kullandığım komutu hem de varsayılan parametreli komutu kullanarak her ECS için iki test yaptım. Dördüncü satırdaki kod ile parametrelerden biri olan threads, çalıştırılacak olan iş parçacığı sayısını belirler. En doğru ölçüm sonucu için ECS’te bulunan vCPU sayısına eşit ya da yüksek olarak ayarlanmalıdır.
Sanal sunucuların kullanım amaçları arasında en çok tercih edilen özelliklerinden biri olan internet bağlantı hızını da test ettim. ECS oluştururken EIP (Elastic IP) bant genişliğini en fazla seçebileceğim değer olan 300 Mbps seçtim. Test için speedtest.net sitesindeki CentOS CLI komutlarını kullandım.
2. Orta sistem özellikleri ile performans testleri — 8 vCPU 16 GiB RAM’li ECS ( c6.2xlarge.2 )
3. Çok yüksek sistem özellikleri ile performans testleri — 64 vCPU 128 GiB RAM’li ECS ( c6.16xlarge.2 )
Testler böylece bitmiş oldu. Son ECS için HDD testi yapmadım çünkü High I/O disk türü için test sonuçları bir önceki yazımda bulunmaktadır. Ayrıca burada yaptığım gibi tekrarlı ve aynı işlemler yapılacaksa yazılım yükleme işlemlerini bir kere yapıp imaj oluşturmak sonra da yeni ECS oluştururken o imajı kullanmak zaman ve iş yükü açısından yararlı olacaktır. Son ECS ikinci ECS’in sistem disk imajı ile oluşturulmuştur.
Özet Sonuçlar ve Yorumlarım
HDD testlerinde en iyi performans gösteren disk türü Ultra-high I/O olarak ölçüldü, General Purpose SSD ikinci ve High I/O üçüncü sırada performans gösterdiler. Burada yapılan HDD testlerinde kullanılan HDD boyutu 40 GB olarak belirlendiğinden alınabilecek en düşük performans sonucu alınmıştır. Yani HDD boyutu arttırıldıkça her türdeki HDD’lerin performansı da belirli oranda artacaktır.
RAM testlerine bakılırsa ECS’ler arasında önemli bir performans farkı görünmüyor. Bu sonuca bakılarak ECS sanallaştırma yapısında aynı RAM türünün kullanıldığını söyleyebiliriz. Testte anlık erişim hızı ölçüldüğü için sonucun böyle çıkması doğaldır.
En büyük fark CPU testlerinde gözlemlendi, vCPU sayısı arttıkça aynı sürede yapılan işlem sayısı lineer artış gösterdi.
İnternet hız testi de oldukça tatmin edici çıktı. Hem yükleme hem de indirme olarak yaklaşık 500 Mbps değerlerini görebiliyoruz.
Oldukça uzun bir makale oldu, umarım okurken keyif almışsınızdır ve faydalı olmuşumdur.