libvirt – Aydın Doyak
Please Donate to Bitcoin Address : [[address]]
QEMU/KVM Sanallaştırma Sunucularında CPU Optimizasyonları
Bu teknik yazıyı yazma amacım, özellikle production ortamlarında sanallaştırma sunucusu olarak KVM koşturan kişilerin optimizasyon ihtiyaçlarını bir nebze karşılamak. Belki öntanımlı gelen ayarlarla kullanıp, herhangi bir optimizasyona şu ana kadar ihtiyacı olmamış olanlar olabilir. Ancak Openstack vb. gibi “compute” çok yapılan tabiri caizse “hayvan gibi” (bkz: beast :P) uygulamalarda, eğer sanallaştırma platformunuz KVM ise aşağıda bahsedeceğim CPU iyileştirmelerini denemek isteyebilirsiniz.
KVM’de hiç bir CPU optimizasyonu yapmamışsanız, oluşturduğunuz sanal makineler öntanımlı olarak genelde o an için sanallaştırma sunucusunda hangi CPU boştaysa onun üzerinde koşmaya başlıyor. Ancak bu en ideal performansında sanal makinelerinizi çalıştırabileceğiniz manasına gelmiyor. Çünkü NUMA mimarisi diye bir mimari var. (lütfen devam etmeden wikipedia içeriğini okuyun)
NUMA mimarisinde bir sanal makineyi daha önceden belirlediğiniz bir NUMA node’una kilitlemek, KVM’in öntanımlı “NUMA node’una bakılmaksızın hangi cpu boştaysa onda çalıştır” policy’sine göre çok daha performanslı oluyor. Çünkü bir sanal makineyi bir NUMA düğümü içersindeki bir (ya da birden çok) CPU’ya kilitlediğinizde, ilgili sanal makinenin sistemden bellek ayırma işlemlerinin her zaman ilgili çalıştığı NUMA düğümünün içersinde kalacağını garanti etmiş oluyorsunuz. Aksi takdirde NUMA düğümleri arasında, hiç gereği olmamasına rağmen cross-node memory transport denilen NUMA düğümleri arası bellek taşınması işlemi de yapılması gerekiyor. E bu da yoğun compute ve memory allocation yapılacak olan sanal makinelerde bir performans kaybına yol açıyor haliyle.
E libvirt’in de NUMA için CPU pinning vb. desteği var, o halde nasıl kullanacağız? Şimdi ona bakalım.
Continue reading QEMU/KVM Sanallaştırma Sunucularında CPU Optimizasyonları
aydintd 24 Ekim 2016
Posted In: Sistem, Teknik
Etiketler:kvm, libvirt, Linux, qemu, vcpu, vcpupin
How to Install Headless Torrent Server in FreeBSD 11.2-RELEASE
HA Network ihtiyacı olanlara çözümler – LACP Bonding
Sansür Ülkeleri İçin Bir Linux Sunucuya Tor Bridge Kurmak
Aptly ile Debian Paket Deposu Yönetimi
Redmine’da WYSIWYG Editörü Kullanmak
Docker ile Ruby Uygulamaları Çalıştırmak
Centos 7’de OpenLDAP Sunucu Kurulumu ve Ayarlanması
HA Network ihtiyacı olanlara çözümler – LACP Bonding için Barış Gürbüz
QEMU/KVM Sanallaştırma Sunucularında CPU Optimizasyonları için Tolga Kaprol
QEMU/KVM Sanallaştırma Sunucularında CPU Optimizasyonları için Volkan Vural
Aptly ile Debian Paket Deposu Yönetimi için aydintd
Aptly ile Debian Paket Deposu Yönetimi için ismail başaran