Server ve Compute Mimarisi
Bellek, NUMA ve I/O Yerelliği
Kapasite, bant genişliği ve latency’yi ayır
Ön koşul: socket, physical core, hardware thread, cache ve iş yükü ölçüm sözleşmesini açıklayabilmelisin. Bu dersin sonunda bellek kapasitesi, bandwidth ve latency’yi ayrı gereksinimler olarak yazabilecek; working set, page fault, reclaim, swap ve memory pressure sinyallerini iş sonucu ile ilişkilendirebilecek; NUMA node üzerinde local ve remote erişim farkını ölçebilecek; vCPU, guest memory ve PCIe aygıt yerleşimini tek topoloji üzerinde inceleyebileceksin. Yaklaşık 28 dakika anlatı ve örnek, 16 dakika Arven çalışması, 10 dakika kontrollerdir. Belirli DIMM SKU’su veya BIOS ayarı seçimi üretici ve platform uzmanı doğrulamasını gerektirir.
RAM miktarı belleğin tek özelliği değildir. Kapasite, aynı anda bellekte tutulması gereken aktif veri, kod, cache ve işletim sistemi payını karşılar. Bandwidth, zaman başına taşınabilen veri miktarıdır. Latency, bir erişimin tamamlanma süresidir. Büyük kapasiteye sahip bir sistem bellek kanalları eksik veya dengesiz doldurulduğunda beklenen bandwidth’i vermeyebilir. Yüksek teorik bandwidth de düzensiz erişen, cache miss üreten tek thread’in latency sorununu tek başına çözmez. Working set, iş yükünün belirli pencerede aktif kullandığı sayfa ve veri kümesidir. Toplam ayrılmış bellek ile resident working set aynı değildir. Uygulama büyük bir alan ayırıp küçük bölümünü kullanabilir; işletim sistemi file cache’i boş RAM’i yararlı biçimde kullanabilir. Bu nedenle “free memory az” cümlesi tek başına kapasite yetersizliğini göstermez. Available memory, reclaim, major/minor page fault, swap in/out, OOM, memory PSI ve uygulama cache hit davranışı aynı zamanda incelenir. Page fault her zaman disk hatası değildir. Minor fault, sayfanın adres alanına eşlenmesini gerektirebilir fakat kalıcı depolamadan okuma yapmayabilir; major fault I/O beklemesi doğurabilir. Reclaim, bellek baskısında sayfaları geri kazanır; aşırı tekrar çalışma thrashing ve latency sıçraması üretebilir. Swap’ın varlığı veya tek bir swap kullanımı otomatik kök neden değildir. İş etkisinin başladığı anda rate, bekleme ve pressure eğrisi gerekir. Bellek baseline’ı iş yükü başına normal/tepe working set, büyüme, paylaşım, cache, page boyutu, bandwidth/latency duyarlılığı, NUMA yerleşimi ve dayanıklılık senaryosu taşır. ECC, RAS, spare ve platformun desteklediği bellek yerleşimi tasarımın güvenilirlik tarafıdır; kapasite hesabına sessizce eklenmez. DIMM sayısı, hız ve channel kullanımı OEM belgesiyle doğrulanır.
| Boyut | Karar sorusu | Örnek kanıt |
|---|---|---|
| Kapasite | Working set ve headroom sığıyor mu? | Resident set, available, reclaim |
| Bandwidth | Core’lar yeterli veri akışı alıyor mu? | GB/s, channel kullanımı |
| Latency | Kritik erişim ne kadar bekliyor? | Local/remote latency, stall |
| Pressure | Görevler kaynak kıtlığından duruyor mu? | memory PSI, swap/reclaim rate |
| Yerleşim | CPU, bellek ve aygıt aynı domain’de mi? | numastat, lstopo, device locality |
ÖRNEK
Düşük free memory arıza değildir
Linux hostta free memory çok düşüktür fakat available memory yeterli, memory PSI sıfıra yakın, major fault ve swap-in yoktur; file cache yoğun kullanılır. Ekip yalnız free değerine bakıp RAM eklerse sorun çözmeyebilir. Aynı hostta kullanıcı latency’si yükselirken reclaim, swap-in ve PSI artıyorsa kapasite ya da yerleşim hipotezi güçlenir.
MÜŞTERİYE SOR
Kritik pencerede uygulamanın resident working set’i, available memory, reclaim/swap rate, major fault ve memory pressure birlikte nasıl değişiyor?
Tek RAM yüzdesini kapasite, aktif veri ve gerçek bekleme sinyallerine ayırır.
BİLGİNİ KONTROL ET
Bir hostta free memory’nin düşük olması neyi kesin kanıtlar?
CPU ile belleği yerel tut
NUMA sisteminde core’lar, kendilerine yakın bellek ve çoğu zaman I/O kaynaklarıyla node veya locality domain oluşturur. Local memory erişimi daha doğrudan, remote memory erişimi interconnect üzerinden gerçekleşir ve ek latency ile bant genişliği rekabeti doğurabilir. “Sunucuda yeterli toplam RAM var” ifadesi her node’un iş yükünü yerel besleyebildiğini göstermez. Linux memory policy, sayfaların hangi node’dan ayrılacağını belirler. Varsayılan davranış çoğunlukla çalışan CPU’ya yakın local allocation’ı tercih eder; preferred, bind ve interleave gibi politikalar farklı amaçlar taşır. Bind seçilen node setini sınırlar, preferred önce seçilen node’u dener ve gerekirse diğerine düşebilir, interleave sayfaları node’lara dağıtır. Bunların hiçbiri evrensel en iyi ayar değildir. İş yükünün thread ve veri paylaşımı, bellek büyüklüğü, node kapasitesi ve hata davranışı değerlendirilir. İlk dokunuş davranışında sayfa onu ilk kullanan thread’e yakın node’dan ayrılabilir. Uygulama tek thread ile belleği hazırlayıp sonra worker’ları farklı node’lara yayarsa remote erişim artabilir. Scheduler thread’i taşırken sayfalar aynı yerde kalabilir. Otomatik NUMA balancing bazı durumlarda thread veya sayfaları yaklaştırabilir; ölçmeden etkinleştirmek ya da kapatmak doğru reçete değildir. `numastat` node bazında `numa_hit`, `numa_miss`, `numa_foreign`, `local_node` ve `other_node` gibi sayaçlar sunar. Değerler kümülatif olabileceği için yalnız büyük sayıya bakma; olay penceresindeki değişim oranını, süreç bazlı dağılımı ve hizmet metriğini karşılaştır. Remote erişim varlığı otomatik problem değildir. Sorun, kabul edilemez latency/throughput ile birlikte artan ve kontrollü yerleşim değişikliğinde düzelen etkidir.
ÖRNEK
Yeterli RAM, yanlış node
İki socketli hostta veri tabanı vCPU’larının çoğu node 0’da çalışır, belleğinin büyük bölümü node 1’den gelir. Toplam RAM yüzde 55 doludur fakat yoğun sorguda remote bandwidth ve p99 latency artar. RAM eklemek yerine önce CPU-memory yerleşimi kontrollü ortamda düzeltilir. Sonuç iyileşirse topoloji hipotezi kanıt kazanır; değişmezse storage, lock ve sorgu yolları açık kalır.
MÜŞTERİYE SOR
Kritik süreç hangi NUMA node’larda çalışıyor, belleği hangi node’lardan ayrılıyor ve remote erişim arttığında p95/p99 latency ile throughput nasıl değişiyor?
Toplam RAM görünümünü process, CPU ve node bazında ölçülebilir yerellik kararına dönüştürür.
ŞİMDİ SEN DENE
NUMA kanıt kartı hazırla
`lscpu`, `numactl --hardware` ve süreç bazlı `numastat` çıktısıyla node, CPU, bellek boyutu, mesafe ve süreç dağılımını kaydet. Olay öncesi/sırası farkını çıkar. Bir yerellik hipotezi, güvenli test, başarı metriği ve geri dönüş koşulu yaz. Üretim pinning’i uygulama.
BİLGİNİ KONTROL ET
Remote memory erişimi görüldüğünde ilk doğru yaklaşım hangisidir?
I/O ve sanal topolojiyi eşleştir
Fiziksel NUMA topolojisi hypervisor tarafından guest’e virtual NUMA olarak sunulabilir. Büyük VM’in vCPU ve belleği bir physical node sınırını aşıyorsa erişim birden fazla node’a yayılır. Bu her zaman yanlış değildir; fakat guest’in gördüğü topology, host placement ve uygulamanın thread/memory politikası uyumlu değilse beklenmeyen remote erişim doğabilir. vCPU sayısını artırmak aynı zamanda VM’in topology sınırını büyütebilir. I/O aygıtları da belirli PCIe root complex ve NUMA node’a daha yakın olabilir. NIC, HBA, NVMe veya accelerator trafiği bir node’daki core ve memory’ye ulaşırken yerel ya da interconnect üzerinden yol alabilir. Yüksek paket veya storage I/O işlerinde IRQ, worker, DMA memory ve aygıtın farklı node’larda bulunması ek trafik üretir. Bu yol marka bilgisinden değil `lspci`, sysfs, `lstopo`, hypervisor topology ve performans sayaçlarından doğrulanır. Bellek channel ve DIMM population platform tasarımının parçasıdır. Desteklenen toplam kapasiteyi sağlayan her DIMM dizilimi aynı bandwidth, hız veya RAS davranışını sunmayabilir. Slot sayısını doldurmak, channel’ları dengeli kullanmak, DIMM tipi/rank/hız karışımı ve firmware kuralları platforma özgüdür. Güncel OEM ve işlemci belgesi olmadan tablo ezberleme. Seçilen konfigürasyonun kapasite, channel kullanımı, etkin hız ve büyüme slotlarını birlikte kaydet. Huge page, memory hotplug, overcommit ve ballooning gibi teknikler ayrı trade-off taşır. Huge page TLB yükünü azaltabilir fakat rezervasyon, parçalanma ve NUMA node dağılımı yönetimi ister. Overcommit konsolidasyon sağlar fakat eşzamanlı tepe ve reclaim riskini büyütür. Özelliği sırf var olduğu için etkinleştirme; iş yükü desteği, ölçüm, operasyon ve geri dönüş planı kur.
| Katman | Doğrulanacak ilişki | Kanıt |
|---|---|---|
| Guest | vCPU–vNUMA–guest memory | Guest topology ve process dağılımı |
| Hypervisor | vCPU–pCPU ve guest memory–pNUMA | Placement/ready ve numastat |
| Memory | Channel, DIMM ve node kapasitesi | OEM population guide |
| PCIe | NIC/HBA/NVMe–root complex–node | lspci/sysfs/lstopo |
| Uygulama | Thread–working set–I/O worker | Profiler ve hizmet metriği |
MÜŞTERİYE SOR
Kritik VM’in vCPU ve belleği hangi physical NUMA node’larda; NIC, HBA veya NVMe hangi node’a yakın ve I/O worker/IRQ’ları nerede çalışıyor?
Guest kaynağı ile fiziksel CPU-memory-device yolunu aynı inceleme sınırında birleştirir.
ŞİMDİ SEN DENE
Bir I/O yolunu topolojiye yerleştir
Kritik VM’den bir NIC veya storage aygıtına kadar vCPU, pCPU, vNUMA, pNUMA, guest/host memory, PCIe root ve aygıt yolunu çiz. Her bağlantıya kanıt kaynağı ve tarih ekle. İki remote-hop hipotezi ve bunları ayıracak latency/throughput testi yaz.
BİLGİNİ KONTROL ET
Büyük bir VM’e daha çok vCPU vermenin olası topoloji etkisi nedir?
Arven bellek ve yerellik kararını üret
Arven’in ERP veri tabanı VM’i 48 vCPU ve 768 GB RAM taşır. Hostlar iki socket ve birden fazla NUMA domain gösterir. Günlük raporda host belleği yüzde 62, VM belleği yüzde 78’dir; ekip 1 TB’a çıkmayı önerir. Ay sonu p99 sorgu latency’si yükselir. Bu değerler kapasite kararına yetmez: working set, available/reclaim, major fault, memory PSI, guest ve host node dağılımı, channel population ile storage/NIC yerelliği açık değildir. İnceleme dört görünüm üretir. Kapasite görünümü resident working set ve büyüme headroom’unu; pressure görünümü reclaim, swap, fault ve stall’ı; locality görünümü vCPU/pCPU ile guest/host memory node’larını; I/O görünümü HBA/NIC root complex, worker ve IRQ yerleşimini kaydeder. Normal gün, ay sonu, bir host bakımdayken ve büyüme senaryosu aynı ölçüm sözleşmesiyle karşılaştırılır. Seçenekler yalnız “768 GB veya 1 TB” değildir. Mevcut placement’ı düzeltme, VM’i desteklenen sınırda bölme, DIMM/channel düzenini tamamlama, uygulama working set/cache ayarı ve kapasite artırma ayrı hipotezlerdir. Uygulama ve platform desteği doğrulanmadan üretim ayarı değiştirilmez. Başarı p99 latency, batch bitişi, throughput, remote erişim ve pressure ile ölçülür; maliyet, büyüme slotu ve bakım kapasitesi karara eklenir.
MÜŞTERİYE SOR
Ay sonu gecikmesinde hangi kanıt kapasite, memory bandwidth, remote NUMA erişimi veya I/O yerelliği seçeneklerini birbirinden ayıracak; verinin sahibi ve test penceresi kimde?
Tek RAM artırma çözümünü yanlışlanabilir alternatif hipotezlere ve sahipli kanıta dönüştürür.
ŞİMDİ SEN DENE
Arven memory-locality karar paketini tamamla
Kapasite, pressure, NUMA ve I/O olmak üzere dört görünüm hazırla. Her görünümde normal/tepe/bakım/büyüme ölçüsü, kaynak, sahip ve bilgi durumu bulunsun. Dört çözüm hipotezini aynı p99 latency, throughput, risk, maliyet ve büyüme ölçülerinde karşılaştır. Üç TBD ve güvenli test planı ekle.
BU DERSTEN AL
Bu dersten taşıyacağın düşünceler
- Bellek kapasitesi, bandwidth ve latency ayrı gereksinimlerdir.
- Düşük free memory tek başına kapasite yetersizliğini kanıtlamaz.
- NUMA kararı thread, sayfa ve sonuç metriğinin yerelliğini birlikte ölçer.
- VM vCPU/memory ile PCIe aygıt topolojisi fiziksel node’larla eşleştirilir.
- Arven kararı RAM miktarından önce kapasite, pressure, locality ve I/O hipotezlerini ayırır.