Sanal Makineler ve Linux Konteynerlerin Performans Karşılaştırması

Benzer belgeler
Ordu Üniv. Bil. Tek. Derg., Cilt:6, Sayı:1, 2016,19-23/Ordu Univ. J. Sci. Tech., Vol:6, No:1,2016,19-23

İşletim Sistemlerine Giriş

Kap Temelli Özgür Sanallaştırma Çözümleri

2. hafta Bulut Bilişime Giriş

Sanallaştırmada Özgür Yazılım Çözümleri. Alper YALÇINER

Işık hızında. Sağlam. Etkileyici. Nytro 3000 SAS SSD

Sanallaştırma Nedir? Bahadır Demircioğlu. Şubat, 2013

Sanal Bellek (Virtual Memory)

Temel Kavramlar-2. Aşağıda depolama aygıtlarının kapasitelerini inceleyebilirsiniz.

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Küme Bilgisayarlar. Enabling Grids for E-sciencE. Onur Temizsoylu. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi ODTÜ, Ankara

(Random-Access Memory)

Uygulamaları ulut bilişime geçirmeden önce, firmanızın/şirketinizin ya da. işinizin gereksinimlerini göz önüne almanız gerekir. Aşağıda bulut bilişime

Işık hızında. Sağlam. Etkileyici SAS SSD

Dosya Saklama Ortamları (Devam) Kütük Organizasyonu 1

Sanallaştırma. Bilişim dünyasını yakından takip edenlerin son yıllarda çok sık duyduğu bir kavram, Sanallaştırma (Virtualization)

Bilgi İşlemde Yeni Bir Çağ IBM Corporation

SİSTEM İHTİYAÇLARI (Tiger Enterprise / Tiger 3 Enterprise)

UHeM ve Bulut Bilişim

Bilgisayar Temel kavramlar - Donanım -Yazılım Ufuk ÇAKIOĞLU

Bölüm 8: Ana Bellek. Operating System Concepts with Java 8 th Edition

Düşünelim? Günlük hayatta bilgisayar hangi alanlarda kullanılmaktadır? Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir?

BİLGİ TEKNOLOJİSİ ALTYAPISI. Mustafa Çetinkaya

1. Hafıza Depolama Araçları. 2. Hafıza Çeşitleri. 3. Hafıza Ölçümü. 4. Bilgisayar Performansı

Linux Temelli Zararlı Yazılımların Bulaşma Teknikleri, Engellenmesi ve Temizlenmesi

Bilgi ve iletişim teknolojileri Dersi Ders Notlarıdır?

Servis olarak Altyapı

Windows Server 2012: Sanallaştırmanın ötesine geçin. Oğuz Pastırmacı IT Pro Teknolojileri Yöneticisi Microsoft Türkiye

Pardus. S.Çağlar Onur, 21 Aralık Pardus Projesi [TÜBİTAK / UEKAE] Linux Kullanıcıları Derneği

SC-T46. Genel Bakış. sertifikası. İnce İstemci

Bilgi Teknolojisi Altyapısı. Tarihi Gelişim. Tarihi Gelişim. Bulut Servis Sağlayıcı. Bulut Bilişim

Bilgi ve iletişim teknolojileri

BİLGİ TEKNOLOJİSİ ALTYAPISI. Mustafa Çetinkaya

İşletim Sistemi. BTEP205 - İşletim Sistemleri

SC-T47. Genel Bakış. sertifikası. İnce İstemci

Sıfır İstemci: VMware View için Optimize Edilmiş 21,5 LED Ekran

Computer Architecture. RAID: (Redundant Array of Independent/Inexpensive Disks)

ODTÜ Kampüs Izgara Hesaplama Uygulaması

Bulut Bilişimin Hayatımızdaki Yeri İnternet Haftası Etkinlikleri 17 Nisan Yard.Doç.Dr.Tuncay Ercan

SİSTEM İHTİYAÇLARI (Tiger Plus / Tiger 3)

Windows İşletim Sistemi

İşletim Sistemlerine Giriş

DONANIM Bahar Dönemi TEMEL BİLİŞİM TEKNOLOJİLERİ

Sabit ve Taşınabilir Diskler BÖLÜM-2 Pata Diskler İçin Master-Slave Ayarları Disk Biçimlendirme Harici Diskler Olası Sabit Disk Arızaları RAID

EKLER EK 12UY0106-5/A4-1:

Pardus. A. Murat Eren, 25 Mart Pardus Geliştiricisi. Pardus Yenilikleri Sık Sorulan Sorular

System Center ile Windows Server Dağıtma, Hazırlama ve Güncelleştirme. Başlıca Avantajlar

İŞ İSTASYONU SEÇİM REHBERİ

Model Tabanlı Geliştirmede Çevik Süreç Uygulanması

Bilgisayar Sistemlerine Genel Bakış

Doğu Akdeniz Üniversitesi Bilgisayar ve Teknoloji Yüksek Okulu Bilgi teknolojileri ve Programcılığı Bölümü DERS 1 - BİLGİSAYAR VE ÇEVRE ÜNİTELERİ

Clonera Bütünleşik İş Sürekliliği Gereksinimler ve Kurulum Dökümanı

Donanımlar Hafta 1 Donanım

Copyright 2012 EMC Corporation. All rights reserved.

İşletme ve Devreye Alma Planı Yerel Okul Sunucusu Uygulama Yazılımları Prototipi TRscaler Technology Solutions

Dosya, disk üzerinde depolanmış verilerin bütününe verilen isimdir. İşletim sistemi genel olarak iki çeşit dosya içerir.

Bilgisayarların Gelişimi

ENF 100 Temel Bilgi Teknolojileri Kullanımı Ders Notları 2. Hafta. Öğr. Gör. Dr. Barış Doğru

BİL 423 Bilgisayar Mimarisi 1. Ara Sınavı

Wake-On-Lan& LDCM Nedir?

Temel Bilgi Teknolojileri I

DOSYA NEDİR? Verilerin HDD de saklanması. Verilerin HDD de saklanması DOSYA SİSTEMİ NEDİR?

USB Keylogger İncelemesi

BİLGİSAYAR KULLANMA KURSU

Linux işletim sistemlerinde dosya hiyerarşisinde en üstte bulunan dizindir. Diğer bütün dizinler kök dizinin altında bulunur.

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

İNFOSET İNFOSET Ses Kayıt Sistemi v2.0. Sistem Kataloğu

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

Veri Yönetiminde Son Nokta. Sedat Zencirci, Teknoloji Satış Danışmanlığı Direktörü, Orta Asya ve Türkiye

MCR02-AE Ethernet Temassız Kart Okuyucu

Bölüm 13: Giriş-Çıkış (I/O) Sistemleri

Elbistan Meslek Yüksek Okulu Güz Yarıyılı EKi Salı, Perşembe Öğr. Gör. Murat KEÇECĠOĞLU

İleri Düzey Bilgisayar Ağları

Tekir (Ön Muhasebe Yazılımı)

Ağ Donanımları NIC. Modem. Modem. Ağ Cihazları (Aktif Cihazlar) Repeater (Yineleyici)

İÇİNDEKİLER. YAZARLAR HAKKINDA... v. RESİMLER LİSTESİ...xv. 1.1.Bulut Bilişim Kavramının Analizi...1 BÖLÜM 1: TEMELLER...1

VIERO ARAÇ SAYIM SİSTEMİ

BİLGİ TEKNOLOJİLERİ VE UYGULAMALARI

Hasan ARMUTLU 1 Muammer AKÇAY 2

Bilgi Teknolojisinin Temel Kavramları

Bilgisayar Donanım 2010 BİLGİSAYAR

İşletim Sistemleri. Discovering Computers Living in a Digital World

VIERO, görüntü tabanlı analiz sayesinde, ortalama araç hızı bilgisi üretmekte ve araç yoğunluğunu da ölçmektedir. VIERO Araç Sayım Sistemi

MATRİKS E-BROKER ELEKTRONİK İŞLEM PLATFORMU MATRİKS TRADER VE JAVA MATRİKS ENTEGRASYONLARI

Yerel Okul Sunucusu Uygulama Yazılımları Prototipi

Toplu Veri Uygulamalarında Kapasite için İyileştirilmiş Kurumsal Sabit Disk

Evrak Tarih ve Sayısı: 19/11/

Video Konferans ve Kurumsal İletişim Sistemi

Temel Linux Eğitimi 1., 2. ve 3. Bölümler

SC-Z56. Genel Bakış. Yüksek performanslı Teradici işlemci ve 512MB sistem belleği

CUMHURİYET MESLEKİ VE TEKNİK ANADOLU LİSESİ BİLİŞİM TEKNOLOJİLERİNİN TEMELLERİ DERSİ DERS NOTLARI BELLEKLER

Cloud Computing and Virtualization. Cloud Computing and Virtualization. Tarkan Eyerci Cybersoft

Toplu Veri Uygulamalarında Kapasite için İyileştirilmiş Kurumsal Sabit Disk

Windows Depolama Sunucusu 2008 Windows Storage Server 2008 Çözümü. INFOSAFE BİLİŞİM TEKNOLOJİLERİ TİCARET LİMİTED ŞİRKETİ

KULÜP İÇİ EĞİTİM: Virtualization. (Sanallaştırma) Sanallaştırmaya Giriş ve Kurumsal Uygulamaları

Dünyada Veri Kaçağı ve Veri Kaçağı Önleme (DLP) Sistemleri Tahsin TÜRKÖZ Bilişim Sistemleri Güvenliği Grubu

MİKROİŞLEMCİLER 1 Ders 1

EMC Forum Yazılım Temelli Veri Depolama Moro Hekim Sistem Mühendisi

Net-Sis İnternet Ve Bilişim Hizmetleri Cloud VDS Altyapı Tanıtım Kataloğu

Transkript:

Sanal Makineler ve Linux Konteynerlerin Performans Karşılaştırması Emre Can YILMAZ 1, Recai OKTAŞ 2 1 Ondokuz Mayıs Üniversitesi, Fen Bilimleri Enstitüsü, Bilgisayar Mühendisliği Anabilim Dalı, Samsun 2 Ondokuz Mayıs Üniversitesi, Mühendislik Fakültesi, Bilgisayar Mühendisliği Bölümü, Samsun ecylmz@bil.omu.edu.tr, roktas@bil.omu.edu.tr

Özet Günümüzde, bulut bilişimle birlikte yaygınlaşan tam sanallaştırmadan, hızla popülerliği artan konteyner tabanlı sanallaştırmaya geçişin olduğu gözlemlenmektedir. Bu geçişin nedenleri arasında tam sanallaştırmada kaynakların verimsiz kullanılması ve bunun sonucunda sanal makinelerin iş yükü performansının düşük olması gösterilmektedir.

Özet Bu çalışmada, Linux işletim sistemi çekirdeği özelinde tam sanallaştırma ile konteyner tabanlı sanallaştırmanın başarım kıyaslamaları yapılmıştır. Son üç yıl içerisinde, Linux konteynerleri için, standart bir çalışma zamanı olan, imaj formatı ve inşa sistemi olarak Docker ortaya çıkmıştır. Yapılan çalışmalar için Linux konteyner yönetim yazılımı olarak Docker ve son zamanlarda Docker a alternatif olarak ortaya çıkan Rocket kullanırken, tam sanallaştırmada hipervizör olarak KVM (Kernel based Virtual Machine) kullanılmıştır.

Kernel Virtual Machine (KVM) Linux süreci içerisinde işletim sistemi çalıştırmayı sağlayan araçtır. KVM donanım sanallaştırması teknolojisini kullanarak, karmaşıklığı ve maliyeti düşürmektedir. QEMU aracılığıyla da işletim sistemi taklidini yapmaktadır. Sanal makinelerin kaynak yönetiminde yeterli verim alınamamaktadır.

Linux Konteynerler Sanal donanımlar üzerinde çalışan işletim sistemlerinin aksine, konteyner tabanlı sanallaştırma varolan işletim sistemini üzerinde çalışır. Bu konteynerleri sistemdeki diğer kullanıcılar yetkileri dahlinde görüntüleyebilir. Linux konteynerler, çekirdek isim uzayı özelliğini kullanır. Linux, dosya sistemi, PID, kullanıcı ve ağ isim uzaylarını gerçekler. Örnek verilecek olunursa, her dosya sistemi isim uzayı kendi kök dizinine sahiptir. Linux konteynerleri için pek çok yönetim aracı mevcuttur. Bunlardan başlıca olanları, LXC, systemd-nspawn, Docker ve Rocket tir.

Docker ve Rocket Pek çok özelliklerinden ve kolay kullanımından dolayı Docker popülerliğini hızla artırmaktadır. Docker ile yaygınlaşan konteyner çözümlerine ek olarak Rocket ortaya çıkmıştır. Docker dan farklı olarak güvenliğe önem vermesi ve uygulama konteynerlerini standart haline getirmek hedeflenmiştir. Bunun yanı sıra Docker dan farklı olarak systemd-nspawn konteyner yönetim kütüphanesini kullanmaktadır.

Değerlendirme Performans değerlendirmede pek çok yaklaşım vardır. Bu çalışmada, sanallaştırma teknolojileri ile fiziksel makinedeki(sanallaştırma olmayan) maksimum iş yükü altındaki durumlarını inceledik. Yapılan testlerin tamamı; Lenovo C560 57324249 modelli, Intel Core i5-4570t CPU @ 2.90GHz 4 işlemcili toplamda 4 çekirdeği bulunan, toplamda 12 GB RAM e sahip bilgisayar üzerinde gerçekleştirildi. Bu sunucu üzerinde Ubuntu 14.04(Trusty) 64 bit, 3.13.0-62 Linux çekirdeği, Docker 1.8.2, QEMU 2.0.0, libvirt 1.2.2, rkt 0.5.5 kullanılmıştır. Docker ve rkt konteynerlerine cgroups aracılığıyla herhangi bir sınırlama konulmamıştır. CPU, bellek, ağ ve depolama konularında mikro kıyaslama betikleri kullandık.

CPU Test için PXZ aracı kullanılmıştır. PXZ, LZMA algoritmasını kullanan, paralel ve kayıpsız veri sıkıştırma aracıdır. Bu çalışmada PXZ programının 4.999.9beta sürümü kullanılmıştır. 2. seviye sıkıştırma tekniği kullanıldı.

CPU Docker, Rocket ve Linux ta sonuçlar çok yakınken, KVM %23 daha yavaştır. Uygulanan Test Linux Docker Rocket KVM PXZ (MB/s) 7,94 7,00 7,35 6,2

Yüksek Başarımlı Hesaplama High Performance Computing yani yüksek başarımlı hesaplama testidir. Çalışmada, Intel Math Kernel Library (MKL) tabanlı Linpack programı kullanıldı. Linpack yoğun lineer denklem sistemlerini LU faktorizasyonu algoritmasını kullanarak çözer.

Yüksek Başarımlı Hesaplama Uygulanan Test Linux Docker Rocket KVM Linpack (GFLOPS) 26,94 26,86 25,93 18,49 Sonuçlarda Linux, Docker ve Rocket in performanslarının neredeyse aynı olduğu gözlemlenmektedir. Ancak KVM deki durumun diğerlerine göre kötü olduğu gözükmektedir. Ortaya çıkan sonuçlar beklenen sonuçlardı.

Bellek Bant Genişliği Bellek bantı genişliği için Stream testi kullanılmıştır. Stream testi vektörler üzerinde basit işlemler yaparak bellek bant genişliği ölçümü yapmaktadır. Bant genişliği, bir iletim ortamının ya da haberleşme kanalının kapasitesini ifade etmek için kullanılır. Başka bir deyişle bir kanal üzerinde taşınabilecek en fazla frekansa sahip sinyal, kanalın bant genişliğidir. Test dört bileşenden oluşmaktadır (Add, Copy, Scale, Triad).

Bellek Bant Genişliği Tüm ortamlarda neredeyse aynı sonuçlar elde edilmiştir. Uygulanan Test Linux Docker Rocket KVM Add 11.8211 11.8406 11.7503 11.5224 Stream (GB/s) Copy 11.4309 11.4464 11.1776 11.2618 Scale 11.3928 11.4289 11.1505 11.2498 Triad 11.7716 11.7792 11.7169 11.513

Rastgele Bellek Erişimi Stream testinde düzenli bir şekilde bellekten veri çekerek bu test uygulansa da Random Access testinde veriler bellekten rastgele seçilerek test gerçekleştirilir. Test, çalışma kümesi olarak önbelleğin veya TLB nin erişemeyeceği kadar belleğin büyük bir kısmını seçerek başlar. Belekten 8 bitlik okuma düzenleme ve yeniden yazma işlemleri yapılır. Belleğe erişilirken kullanılan rastgele konumlar, bellek harcaması gerektirmeyen linear feedback shift register yöntemiyle belirlenmiştir.

Rastgele Bellek Erişimi Tüm platformlarda sonuçlar çok yakın çıkmıştır. Birbirlerinden bariz bir üstünlükleri bulunmamaktadır. Uygulanan Test Linux Docker Rocket KVM RandomAccess (GUPS) 0,0550 0,0515 0,0520 0,0545

Ağ Bant Genişliği Ağ bant genişliği testi için nuttcp aracını kullandık. Docker ve Rocket konteynerleri ağa NAT kullanarak bağlar. KVM yapılandırmasında virtio kullanılmıştır. Tüm platformlarda ulaşılan maksimum hız eşit çıkmıştır.

Ağ Bant Genişliği Ölçümler sırasında CPU kullanım verimliliği sonuçları gözlemlenmiştir. Bu ölçümlerde perf stat -a kullanılmıştır. KVM veri iletimi işlemi sırasında daha verimli olurken, Docker da önce köprü sonra NAT işlemi yapıldığından KVM e göre verimi düşüktür. Ancak KVM veri alımı işlemi sırasında diğerlerine göre çok daha fazla işlem yükü oluşturmaktadır.

Ağ Bant Genişliği TCP toplu transfer verimi (CPU cycles / byte)

Ağ Gecikmesi Ağ gecikmesi tesi için netperf istek-yanıt aracını kullandık. Bu test sırasında sunucularda birinde netperf sunucusu(netserver) çalışırken, diğer sunucuda ise netperf istemcisi çalışır. İstemci 100 baytlık istekler gönderirken, sunucu 200 baytlık yanıtlar gönderirir. İstemci diğer isteği göndermeden önce sunucudan gelecek yanıtı bekler. Belirtilen bu adımlar 1 işlem olarak kabul edilir.

Ağ Gecikmesi Docker da ve Rocket da NAT kullanılması gecikmeyi yaklaşık 2 katına çıkarmıştır. KVM de ise sanallaştırma olmayan sunucuya göre yaklaşık %80 oranında daha fazladır. Ağ round-trip gecikmesi (µs).

Blok I/O İşlemleri Blok I/O işlemlerinde kullanmak üzere 120 GB SSD Samsung EVO 850 model disk kullandık. Dosya sistemi olarak ön tanımlı ayarlarıyla EXT4 dosya sistemi kullandık. Sanal makine, sisteme bağlanan diski kullanmak için virtio yu kullanmaktadır. Testi gerçekleştirmek için fio(v2.1.3) aracı kullanıldı.

Sıralı Okuma Yazma Performansı Sıralı okuma yazma performansları hemen hemen aynı olduğu gözlemlenmiştir. Sıralı I / O verimliliği (MB/s).

Rastgele Okuma Yazma Performansı 4kB lık bloklar halinde rastgele okuma yazma performansları kıyaslanmıştır. Beklenildiği gibi Docker da ve Rocket de herhangi bir performans sorunu yokken, KVM her bir I/O işlemi için QEMU ya başvurduğundan performans kaybı yaşamaktadır.

Rastgele Okuma Yazma Performansı Rastgele I / O verimliliği (IOPS).

Sonuç ve Öneriler Donanım ve yazılımların son on yılda gelişmesiyle birlikte, Linux konteynerler ve sanal makineler olgunlaşmış teknoloji haline gelmişlerdir. Docker ve Rocket her açıdan sanal makinelerin performansına erişebildiği gözlemlenmiştir. Çalışmalarımız neticesinde KVM in yoğun I/O işlemlerinde ağır kaldığı gözlemlenmiştir. Yüksek I/O işlemlerinin yapılacağı uygulamalar için çok da uygun olmadığı anlaşılmıştır.

Sonuç ve Öneriler Eğer sanal makineler üzerinde konteynerler çalıştırılmak istenirse, bu ekstra güvenlik katmanı yaratmasına karşın, QEMU ya yetkisiz erişim sağlayan biri aynı zamanda konteyner içerisine de erişim sağlamaktadır. Bu çalışmada, tek bir sunucu üzerine sadece bir sanal makine veya sadece bir konteyner konulmuştur. Gerçek hayatta sunucular genellikle bu şekilde kullanılmaz.

Sonuç ve Öneriler Bulutta genellikle sağlayıcılar bu sunucuları daha küçük birimlere kullanarak müşterilerine sunar. Ayrıca bulut bilişimde kullanılan sunucuların bu çalışmada kullanılan sunuculardan çok daha üstün performansa sahip olması gerekmektedir. Bu çalışmada ortaya çıkan sayısal değerler, platformların birbirlerine göre oransal olarak kıyası söz konusudur.

Kaynak Kodlar Bu çalışmada çalıştırılan testler https://github.com/ecylmz/docker-rkt-kvmcomp/ adresinde bulunmaktadır.

Teşekkürler! Emre Can YILMAZ Ondokuz Mayıs Üniversitesi, Fen Bilimleri Enstitüsü, Bilgisayar Mühendisliği Anabilim Dalı, Samsun ecylmz@bil.omu.edu.tr