Çift İşlemcili Sistem: Avantajlar, NUMA İnce Ayarları ve Montaj Kontrol Listesi

Kerem Aydın·8 Temmuz 2026·⏱6 dk

Çift işlemcili sunucu, tek bir CPU'nun çekirdek sayısı, bellek kanalları veya PCIe hatları açısından yetersiz kaldığı durumlarda mantıklıdır. Böyle bir sistemin performansının anahtarı, NUMA (Düzensiz Bellek Erişimi) mimarisiyle doğru çalışmaktır. Görevlerin belirli bellek düğümlerine bağlanması göz ardı edilirse, çalışma hızı tek işlemcili bir makineden bile daha düşük olabilir. Bu makalede, ikinci soket için neden fazladan ödeme yapmanız gerektiği, "dar boğazlardan" nasıl kaçınılacağı ve sistemin kararlı çalışması için nasıl yapılandırılacağı ele alınacaktır.

Gerçekten İki İşlemciye Ne Zaman İhtiyaç Duyulur?

İki soketli (Dual Socket) bir platforma geçiş, sadece hesaplama gücünü ikiye katlamak değildir. Bu, sistem mimarisinde bir değişikliktir. İşte 2 CPU'nun gerekli olduğu temel senaryolar:

  1. Yüksek Yoğunluklu Sanallaştırma. Tek bir donanım üzerinde onlarca ağır sanal makine (VM) çalıştırmanız gerekiyorsa, çift işlemcili platform yeterli sayıda fiziksel çekirdek ve kaynak izolasyonu sağlayacaktır.
  2. Bellek Bant Genişliği (Memory Bandwidth) Sınırlandırması. Modern işlemcilerin bellek kanalları konusunda bir limiti vardır. Uygulamanız (örneğin, büyük bir in-memory veritabanı) saat frekansından ziyade RAM okuma/yazma hızında tıkanıyorsa, ikinci CPU yeni bellek kanalları ekleyerek bu sınırı ortadan kaldırır.
  3. PCIe Hatlarına Duyulan İhtiyaç. Çok sayıda NVMe sürücü, 100GbE+ ağ kartı veya birden fazla GPU içeren sunucular için PCIe hatlarının sayısı kritiktir. İki işlemci, mevcut hatları ikiye katlayarak yavaş anahtarlar (PLX) kullanmadan daha fazla çevre biriminin bağlanmasına olanak tanır.
  4. Hata Toleransı ve Yük Dengeleme. Yükü, bileşenlerden birinin arızalanmasının veya yeniden başlatılmasının genel hizmet kullanılabilirliğini daha az etkileyeceği şekilde dağıtma imkanı (doğru küme yapılandırması ile).

2 CPU'nun Gereksiz Masraf Olduğu Durumlar Göreviniz 8–16 çekirdekte kolayca paralelleştirilebiliyorsa ve her saniye gigabaytlarca RAM gerektirmiyorsa, modern tek işlemcili bir sunucu (örneğin, soket başına çok çekirdekli AMD EPYC veya Intel Xeon W tabanlı) daha ucuz, soğutması daha kolay ve işlemciler arası veri yolundaki gecikmeler olmadığından genellikle daha hızlı olacaktır.

NUMA Mimarisi: Neden Önemlidir?

Çift işlemcili sistemlerde NUMA (Non-Uniform Memory Access - Düzensiz Bellek Erişimi) mimarisi kullanılır. Bu prensibi anlamak, sistem yöneticisi için zorunludur.

Nasıl Çalışır?

Her işlemcinin, kendi denetleyicisine doğrudan bağlı "yerel" belleği vardır. Kendi belleğine erişim minimum gecikme ile gerçekleşir. Ancak, ilk işlemcinin bir çekirdeği ikinci işlemciye ait slotlarda fiziksel olarak bulunan belleğe erişirse, verilerin interconnect veri yolundan (Intel UPI veya AMD Infinity Fabric) geçmesi gerekir. Bu durum ek gecikme (latency) yaratır ve bant genişliğini düşürür.

Sistem NUMA düğümlerine (nodes) ayrılır. En basit çift soketli sunucu durumunda bunların sayısı ikidir.

NUMA'yı Görmezden Gelmenin Sorunları

İşletim sistemi veya hipervizör süreçleri ve belleği rastgele dağıtırsa:

  • "Düğümler arası" bellek erişimleri ortaya çıkar.
  • İşlemciler arası veri yolu üzerindeki yük artar.
  • Gecikmeye duyarlı uygulamaların (Veritabanları, Yüksek Frekanslı Alım-Satım, gerçek zamanlı analitik) performansı %20–40 oranında düşebilir.

NUMA İçin Altın Kural İşlemin ve işlediği verilerin aynı NUMA düğümü içinde kalmasını sağlamaya çalışın. Buna "NUMA yerelliği" (NUMA locality) denir.

Çift İşlemcili Sunucu Montajındaki Kritik Noktalar

Böyle bir sunucunun montajı, normal bir PC'den daha zordur. Donanım yapılandırma aşamasındaki bir hata, yazılımsal olarak çözülemeyebilir.

1. Bellek Yapılandırması (RAM)

Bu, en sık karşılaşılan sorun kaynağıdır.

  • Kanalı Eşit Doldurun. Her CPU'nun birkaç bellek kanalı vardır (genellikle 6, 8 veya 12). Maksimum bant genişliği elde etmek için tüm kanallar aynı kapasite ve hızdaki modüllerle dolu olmalıdır.
  • Simetri Kuralı. Belleği işlemcilere göre simetrik olarak takın. Her iki soket de yüklüyken belleği sadece bir soka takmak dengesizlik yaratır ve ikinci CPU'yu sürekli uzak belleğe erişmeye zorlar.
  • Modül Tipi. Platform destekliyorsa yalnızca Registered ECC (RDIMM) veya Load Reduced (LRDIMM) kullanın. Unbuffered DIMM'ler sunucu çift işlemcili anakartlarda genellikle çalışmaz veya kapasiteyi ciddi şekilde kısıtlar.

2. Isı Yayılımı ve Soğutma

TDP değeri 250–350 W olan iki işlemci, kompakt bir alanda muazzam miktarda ısı yayar.

  • Sunucunun soğutma sisteminin (kasa fanları) her iki CPU'nun eşzamanlı pik yükünü karşılayacak şekilde tasarlandığından emin olun.
  • Doğru tip radyatörlerin bulunduğunu kontrol edin (kasa içindeki hava akışına bağlı olarak aktif veya pasif).

3. PCIe Cihazlarının Dengelenmesi

Genişletme kartları (GPU, RAID denetleyicileri, ağ adaptörleri) takılırken fiziksel bağlantıları dikkate alın.

  • PCIe slotları genellikle belirli bir CPU'ya atanmıştır.
  • GPU'yu CPU 1'e ait bir slota takarsanız ve verileri CPU 2'nin belleğinde bulunuyorsa, gecikmelerde çift ceza alırsınız. Kartları, onlara hizmet verecek işlemciye daha yakın olacak şekilde yerleştirmeyi planlayın.

Maksimum Verimlilik İçin BIOS ve OS Yapılandırması

Donanım toplandı. Şimdi yazılımın doğru çalışmasını sağlamak gerekiyor.

BIOS/UEFI Ayarları

  1. Soket Başına NUMA Düğümü (NPS):
    • AMD EPYC için NPS1 (soket başına bir düğüm) veya NPS4 (soket başına dört düğüm) seçilebilir. NPS4 daha ince granülerlik sağlar ve spesifik görevler için genellikle daha iyi performans sunar, ancak yapılandırması daha zordur. Başlangıç için NPS1 kullanın.
    • Intel için genellikle standart NUMA modu etkinleştirilir.
  2. Bellek Interleaving: NUMA üzerinde sıkı kontrol istiyorsanız, soketler arası interleaving'i devre dışı bırakın. Performans için soket içinde interleaving'i etkinleştirin.
  3. SMT/Hyper-Threading: Gecikmeye duyarlı görevler (bazı veritabanları) için, fiziksel çekirdeklerin kaynakları paylaşmaması adına Hyper-Threading'i kapatmak bazen daha avantajlıdır. Sanallaştırma için açık bırakmak daha iyidir.

Linux'ta Yapılandırma

Süreç bağlamayı yönetmek için numactl aracını kullanın.

  • Topolojiyi Görüntüleme:
    lscpu -e
    numactl -H
    ```
*   **Belirli Bir Düğümde Süreç Çalıştırma:**
    
```bash
    # Uygulamayı düğüm 0'da (ilk CPU ve onun belleği) çalıştır
    numactl --cpunodebind=0 --membind=0 ./my_application
    ```
*   **Sanallaştırma Yapılandırması (KVM/QEMU):**
    VM oluştururken, misafir işletim sisteminin doğru NUMA topolojisini görmesi için vCPU ve belleğin ana bilgisayar düğümlerine açıkça bağlanmasını sağlayın.

### Windows Server'da Yapılandırma
Görev Yöneticisi veya PowerShell üzerinden süreç afinite ayarları yapılabilir, ancak sunucu yükleri için NUMA spanning'i destekleyen hipervizöre (Hyper-V) güvenmek daha iyidir. VM'nin bir düğümde bulunan miktardan daha fazla belleğe ihtiyacı varsa VM ayarlarında "NUMA Spanning" seçeneğinin etkin olduğundan emin olun, ancak bunun performansı düşürdüğünü unutmayın.

## Kullanım Sırasındaki Sık Yapılan Hatalar

<div class="table-container"><table style="border-collapse: collapse; width: 100%; margin: 16px 0;"><thead><tr><th style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; background: #f9fafb; font-weight: 600;">Hata</th><th style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; background: #f9fafb; font-weight: 600;">Sonuç</th><th style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; background: #f9fafb; font-weight: 600;">Çözüm</th></tr></thead><tbody><tr><td style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; vertical-align: top;"><strong>Asimetrik RAM Takılması</strong></td><td style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; vertical-align: top;">Bellek bant genişliğinde 2–4 kat düşüş</td><td style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; vertical-align: top;">Anakart kılavuzuna sıkı sıkıya uyarak, kanal dengesini koruyarak slotları doldurun</td></tr><tr><td style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; vertical-align: top;"><strong>Kodda/Yapılandırmada NUMA&#39;nın Görmezden Gelilmesi</strong></td><td style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; vertical-align: top;">Yüksek latency, kararsız FPS/throughput</td><td style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; vertical-align: top;"><code style="background-color: rgba(0,0,0,0.05); padding: 2px 4px; border-radius: 3px; font-family: monospace; font-size: 0.9em;">numactl</code> kullanın, thread pinning uygulayın, VTYS&#39;de affinity ayarlarını yapın</td></tr><tr><td style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; vertical-align: top;"><strong>Kötü Hava Dolaşımı Nedeniyle Aşırı Isınma</strong></td><td style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; vertical-align: top;">İşlemci throttling&#39;i, frekans düşüşü</td><td style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; vertical-align: top;">Hava akışı yönlerini kontrol edin, termal arayüzü değiştirin</td></tr><tr><td style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; vertical-align: top;"><strong>Yanlış PCIe Dengesi Seçimi</strong></td><td style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; vertical-align: top;">GPU veya hızlı SSD&#39;lerle çalışırken dar boğaz</td><td style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; vertical-align: top;">Anakart şemasını inceleyin ve cihazları &quot;kendi&quot; CPU&#39;larının yanına yerleştirin</td></tr></tbody></table></div>


## SSS

**NUMA'nın doğru çalışıp çalışmadığını nasıl kontrol edebilirim?**
Linux'ta `numastat` komutunu çalıştırın. Belirli bir düğüm için `numa_miss` veya `numa_foreign` sütunlarında büyük değerler görüyorsanız, süreçler aktif olarak uzak belleği kullanıyor demektir. Bu, bağlama optimizasyonu için bir sinyaldir.

**İki sokette farklı işlemciler kullanabilir miyim?**
Hayır. İşlemciler kesinlikle aynı olmalıdır (aynı model, aynı stepping). Farklı CPU'ların kullanılması sistemin başlamamasına veya ciddi kararlılık hatalarına yol açar.

**Ev medya sunucusu veya dosya deposu için hangisi daha iyi: 2 CPU mu yoksa 1 güçlü CPU mu?**
Kesinlikle 1 güçlü (hatta modern masaüstü) işlemci. Çift işlemcili platformlar aşırıdır, boşta durumda çok enerji tüketir ve pahalı bir sunucu ortamı gerektirir. NAS ve medya için ölçeklenebilirlikten ziyade enerji verimliliği ve sessiz çalışma daha önemlidir.

**BIOS versiyonu NUMA performansını etkiler mi?**
Evet. Anakart üreticileri, bellek denetleyicilerinin ve veri yollarının çalışmasını iyileştiren mikro kod güncellemelerini (AMD için AGESA, Intel için Microcode) düzenli olarak yayınlar. Sunucuyu devreye almadan önce BIOS'u her zaman en son stabil sürüme güncelleyin.