Please Donate to Bitcoin Address : [[address]]

Donation of [[value]] BTC Received. Thank You.
[[error]]

QEMU/KVM Sanallaştırma Sunucularında CPU Optimizasyonları

Merhaba,

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.

Ön Bilgiler

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ı

24 Ekim 2016

Posted In: Sistem, Teknik

Etiketler:, , , , ,

2 Comments