×
VMware Üzerinde Database Sunucuları İçin En Doğru vCPU CoreSocket ve NUMA Yapılandırması

VMware Üzerinde Database Sunucuları İçin En Doğru vCPU Core/Socket ve NUMA Yapılandırması

VMware üzerinde SQL Server veya Oracle gibi yüksek performans gerektiren database sunucuları çalıştırıyorsanız, vCPU core/socket ve NUMA ayarları performansın kaderini belirler. Yanlış yapılandırma, donanım ne kadar güçlü olursa olsun %20–30’a varan performans kayıplarına yol açabilir.

Bu yazıda, örnek olarak Intel Xeon Gold 6152 (2×22 core) işlemcili bir ESXi host üzerinde database sanal makineleri için en ideal vCPU dağılımını, NUMA mimarisini ve SQL/Oracle tuning önerilerini tüm detaylarıyla ele alacağım.

Fiziksel Host Topolojisi: Intel Xeon Gold 6152

Örnek ortamımızın donanım yapısı:

  • CPU: Intel Xeon Gold 6152 @ 2.10GHz
  • Soket sayısı: 2
  • Soket başına core: 22
  • Toplam fiziksel core: 44
  • Her soket bağımsız bir NUMA node’dur.

Database VM’inizin tek bir NUMA node’un kapasitesini aşmaması, performans açısından en önemli konudur.

Not: NUMA node = CPU soketi demektir. Her soketin kendi lokal belleği vardır ve yerel belleğe erişim her zaman daha hızlıdır.

NUMA Nedir ve VMware İçin Neden Bu Kadar Önemlidir?

NUMA (Non-Uniform Memory Access), işlemcilerin kendi yerel belleğine daha hızlı eriştiği bir mimaridir. VMware bu yapıyı sanal makineler için vNUMA olarak sunar.

Doğru vNUMA yapılandırması:

  • Bellek gecikmesini azaltır
  • CPU scheduling’i dengeler
  • SQL/Oracle execution planlarını iyileştirir
  • Genel sistem stabilitesini artırır

Yanlış yapılandırma ise:

  • Cross-node memory access oluşturur
  • CPU wait ve context switch artar
  • Query süreleri uzar

Büyük database VM’lerinde vNUMA = pNUMA uyumu sağlamak performansın %50’sidir.

Intel 6152 Host Üzerinde En İdeal vCPU Yapılandırmaları

Önerilen Dağılımlar

Toplam vCPU Soket Core/Socket Durum
16 1 16 En iyi
24 2 12 En iyi
32 2 16 En iyi

 

22 core’luk bir NUMA node’a 16 veya 12 core rahatça sığar.

24 veya 32 core’u tek sokete verirseniz NUMA split olur.

Split = performans kaybı.

1×32 veya 1×24 yapılandırması teknik olarak çalışır ama performans olarak doğru değildir.

CPU Hot Add Mutlaka Kapalı Olmalı

Database VM’lerinde CPU Hot Add açıksa vNUMA çalışmaz.

Bu da:

  • NUMA farkındalığını bozar
  • SQL ve Oracle’ın sistemi tek node gibi görmesine neden olur
  • Performans düşürür

Not: Büyük VM’ler için CPU Hot Add bir “feature” değil, bir performans riskidir.

Bellek (RAM) ve NUMA Uyumu

  • Bellek mümkün olduğunca node’lara eşit dağılmalıdır.
  • Örneğin 128 GB RAM → 64 + 64 şeklinde.
  • Memory overcommit, ballooning ve swap kesinlikle olmamalıdır.

Büyük database VM’lerinde memory reservation kullanmak iyi bir pratik olabilir.

SQL Server İçin NUMA Tuning Önerileri

MAXDOP

  • 2×16 vCPU yapısı için başlangıç değeri: 8
  • Gerekirse test ederek 12 veya 16’ya çıkarılabilir.

Cost Threshold for Parallelism

  • Varsayılan 5 çok düşüktür.
  • Önerilen: 25–50

NUMA Kontrolü

SQL Server’ın NUMA’yı doğru görüp görmediğini şu DMV’lerle kontrol edebilirsiniz:

  • sys.dm_os_nodes
  • sys.dm_os_schedulers

Oracle Database İçin NUMA Tuning Önerileri

  • Linux’ta numactl –hardware ile NUMA yapısını kontrol edin.
  • HugePages kullanımı önerilir.
  • SGA/PGA bellekleri dengeli dağıtılmalıdır.
  • Oracle’ın internal NUMA parametreleri destek olmadan değiştirilmemelidir.

Örnek vNUMA Mimarisi

NUMA Node 0 (22 Core)  NUMA Node 1 (22 Core)

|                       |

+——— ESXi ——–+

|

Database VM (32 vCPU)

vNUMA0 (16)  vNUMA1 (16)

Intel Xeon Gold 6152 (2×22 core) bir host üzerinde database sanal makineleri için:

  • 16 vCPU → 1×16
  • 24 vCPU → 2×12
  • 32 vCPU → 2×16

İncelemek isterseniz aşağıdaki linkten detaylara bakabilirsiniz.

Virtual Machine vCPU and vNUMA Rightsizing – Guidelines

şeklindeki yapılandırmalar en doğru, en stabil ve en performanslı sonuçları verir. Doğru vCPU dağılımı, NUMA uyumu ve temel SQL/Oracle tuning ayarlarıyla mevcut donanımınızdan maksimum verimi alabilirsiniz.


 

1988 İstanbul doğumluyum. Bilgisayar dünyasına olan hayranlığım çok küçük yaşlarda başladı. Bu sebeple sistem alanında kendimi geliştirmeye karar verdim. Celal Bayar Üniversitesi Bilgisayar Programcılığı ve Anadolu Üniversitesi İşletme mezunuyum. Beykent Üniversitesi'nde Yönetim Bilişim Sistemleri Bölümü'nde yüksek lisans eğitimimi tamamladım. 2005 yılında Bilge Adam Sistem & Network Mühendisliği eğitimi aldım. Hemen ardından IT dünyasına giriş yaptım. Collezione şirketinde 2006 - 2018 yılları arasında Sistem Uzmanı olarak görev yaptım. 2018 Temmuz ayından beri LCWAIKIKI şirketinde System Engineer pozisyonunda çalışmaktayım. Sektörde 19 yıllık deneyime sahibim. Birçok önemli projede görev aldım. Sayfanın en alt kısmından Linkedin profilime ulaşabilirsiniz. Bilgi ve tecrübemi hem bu blog üzerinde hem de Çözümpark Bilişim Portalı üzerinde paylaşıyorum.

Yorum gönder