Modern donanımdaki dengesizlik için hala bir kullanım var mı?


39

Bu soru daha önce sorulmuştu, ancak dünyanın tekrar sorulması için yeterince değiştiğine inanıyorum.

Dengesizliğin, çekirdekleri arasında bellek paylaşımına sahip NUMA özellikli CPU'larımızın bulunduğu günümüzün sistemlerinde herhangi bir kullanımı var mı?

Çalışan irqbalance --oneshot --debug, modern bir VMware ESXi ortamında sanal bir misafirin NUMA düğümünü çekirdekler arasında paylaştığını gösteriyor.

# irqbalance --oneshot --debug 3
Package 0:  numa_node is 0 cpu mask is 0000000f (load 0)
    Cache domain 0:  numa_node is 0 cpu mask is 0000000f  (load 0)
            CPU number 0  numa_node is 0 (load 0)           
            CPU number 1  numa_node is 0 (load 0)
            CPU number 2  numa_node is 0 (load 0)
            CPU number 3  numa_node is 0 (load 0)

irqbalance bu durumda bir NUMA sisteminde çalıştırıldığını tespit eder ve çıkar. Bu bizim süreç izlememize karışıyor.

Bu tür sistemlerdeki dengesizlik yerine numad'ı çalıştırmalı mıyız ?

Bu çoğunlukla VMware sanallaştırılmış sunucular için ilginçtir.

Yanıtlar:


27

RedHat'taki bir teknisyenden bir cevap. Yine de çoğu kurumsal donanımın NUMA yeteneğine sahip olduğuna inanıyorum. Ve bildiğim kadarıyla VMware, VM'lerinizi CPU yapılandırması uygun olduğu sürece aynı NUMA düğümüne sığdırmaya çalışacaktır.

Tecrübeler (özellikle VMware ile ilgili) çok takdir edilecektir.

Bu, modern sunucular için "çünkü" doğrudur. Multi-CPU / Muli-Core'un NUMA ile aynı olmadığını unutmayın. NUMA'sı olmayan birçok Multi-CPU / Core sistemi vardır.

Aşağıdaki açıklamalarımı okumadan önce, lütfen yukarıdaki IRQ Affinity belgesini ve aşağıdaki kılavuzları okuyun:

RHEL 6 Performans Ayar Kılavuzu

RHEL 6 için Düşük Gecikmeli Performans Ayarı

Hepsini okudun mu? Harika, benden daha fazla bir şey duymaman gerek! ;-) Ama sadece sabırsız olman durumunda, işte neden onları istiyorsun?

IRQbalance, tüm IRQ isteklerinin tek bir CPU'da yedeklenmesini önler. 4+ CPU çekirdeğine sahip birçok sistemin yavaş çalıştığını gördüm, çünkü çeşitli CPU'lardaki işlemlerin tümü ağ veya depolama IRQ isteklerini işlemek için CPU 0'ı bekliyor. CPU 0 çok çok meşgul görünüyor, diğer tüm CPU'lar meşgul değil, ancak uygulamalar çok yavaş. Uygulamalar yavaş çünkü CPU 0'dan IO taleplerini bekliyorlar.

IRQbalance, bunu tüm CPU'larda akıllıca dengelemeye çalışır ve mümkün olduğunda, IRQ işlemlerini sürece mümkün olduğunca yaklaştırır. Bu aynı çekirdek, aynı önbelleği paylaşan aynı kalıptaki bir çekirdek veya aynı NUMA bölgesindeki bir çekirdek olabilir.

Dengesizliği kullanmanız gerekmedikçe:

Uygulamalarınızı / IRQ'lerinizi çok iyi bir sebepten dolayı (düşük gecikme süresi, gerçek zamanlı gereksinimler vb.) Belirli çekirdeklere manüel olarak tutuyorsunuz.

Sanal Konuklar. Gerçekten bir anlam ifade etmiyor, çünkü konuğu belirli CPU'lara ve IRQ'lara ve özel net / depolama donanımına sabitlemediğiniz sürece, büyük olasılıkla metal üzerinde yapacağınız faydaları görmeyeceksiniz. Ancak KVM / RHEV sunucunuz, dengesizlik ve numad kullanıyor olmalı ve ayarlamalıdır .

Diğer çok önemli tuning araçları tuned profilleri ve numad. Onlar hakkında okuyun! Onları kullan!

Numad, bir işlemin ve hafızasının aynı numa bölgesinde olduğundan emin olmaya çalıştığındaki dengesizliğe benzer. Birçok çekirdekle, gecikmelerde önemli bir azalma görüyoruz, bu da yükler altında daha yumuşak bir güvenilir performans sağlıyor.

Yetenekli, gayretli ve düzenli olarak çalışıyorsanız veya tahmin edilebilir bir iş yükünüz varsa, süreçleri / IRQ'leri CPU'lara manüel olarak sıkıştırarak daha iyi performans elde edebilirsiniz. Bu durumlarda bile, dengesizlik ve numad eşleştirmeye çok yaklaşıyor. Ancak, emin değilseniz veya iş yükünüz tahmin edilemezse, dengesizlik ve sayı kullanmalısınız.


5
FWIW, bazı 10GbE kılavuzları daha iyi verim elde etmek için dengesizliğin engellenmesini tavsiye ediyor ...
rogerdpack 12:13

8
Kıyaslama numaralarına uyması için mutlak maksimum değer elde etmek için, evet, belirli bir şekilde işleri bir araya getirmeniz gerekir, ancak bu kriterler genellikle gerçek hayattaki iş yükleriyle eşleşmez. Çok öngörülebilir bir kullanım düzeninde son derece gecikme duyarlı bir gereksinime sahip sunucuda çalışan bir TEK uygulamanız varsa, sorun değil, devam edin ve işlemcilerin benzeşimini işler için el ile yapılandırın. Ancak, uygulama, çok çeşitli işlem ve yükler arasında değişiklik gösterebilecek gerçek bir dünya kullanım durumuysa, Red Hat teknolojisine katılıyorum. Linux NUMA dengeleme güzel ilerliyor.
GeorgeB
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.