İşlem sabitleme konusunda dikkat edilmesi gerekenler

Tamamlandı

İşlemleri ve iş parçacıklarını neden sabitleyin?

En yüksek performansı elde etmeye ve çalıştırmadan çalıştırmaya kadar daha tutarlı performans elde etmeye yardımcı olmak için işlemleri her zaman belirli çekirdeklere sabitleyin.

İşlem sabitleme:

  • İşlemleri tüm bellek kanallarını kullanan konumlara yerleştirerek veya sabitleyerek ve tüm bellek kanallarını çekirdekler arasında eşit olarak dağıtarak bellek bant genişliğini en üst düzeye çıkarır.

  • Her işlemin kendi çekirdeğinde olduğunu garanti ederek kayan nokta performansını geliştirir. Bu, iki işlemin aynı çekirdeğe inme olasılığını ortadan kaldırır.

  • Tekdüzen Olmayan Bellek Erişimi (NUMA) etki alanı düğümlerinde iletişim kuran işlemler yerleştirerek işlemler arasında veri hareketini iyileştirir. Bu, en düşük gecikme süresine ve en yüksek bant genişliğine sahip olduklarını garanti eder.

  • İşletim sistemi işlemleri farklı çekirdeklere veya NUMA etki alanlarına taşıyamadığından işletim sistemi ek yükünü azaltır ve size daha tutarlı sonuçlar verir.

İşlemleri ve iş parçacıklarını nereye sabitlersiniz?

İşlemlerin ve iş parçacıklarının nereye sabitleneceğini belirlemek için işlemciyi ve bellek topolojisini ve özellikle NUMA etki alanlarının sayısını ve konumunu anlamanız gerekir.

lstopo-no-graphics yardımcı programı (hwloc RPM'den) ve Intel Bellek Gecikme Süresi Denetleyicisi (MLC), işlemci ve bellek topolojisini belirlemek için yararlı araçlardır. Örneğin: VM'de kaç NUMA etki alanı var? Her NUMA etki alanının üyesi olan çekirdekler hangileridir? Her NUMA etki alanındaki işlemler birbirleriyle iletişim kurarken gecikme süresi ve bant genişliği nedir?

Aşağıdaki görüntüde, Intel MLC tarafından oluşturulan HB120_v2 NUMA etki alanı gecikme süresi eşlemesi görüntülenir. NUMA etki alanları arasındaki gecikme süresi ne kadar düşük olursa, aralarındaki iletişim de o kadar hızlı olur. Çizim, HB120_v2 30 NUMA etki alanına sahip olduğunu ve hangi NUMA etki alanlarının hangi yuvada olduğunu açıkça gösterir. Ayrıca en düşük veri aktarımı ve iletişim gecikme süresini elde etmek için hangi NUMA etki alanlarının birlikte gruplanabileceğini gösterir.

Image that shows the HB120_v2 NUMA domain latency map.

Intel işlemciler altı bellek kanalına ve AMD EPYC işlemcileri sekiz bellek kanalına sahiptir. Kullanılabilir bellek bant genişliğini en üst düzeye çıkarmak için tüm bellek kanallarını kullandığınızdan emin olun. Bunu yapmak için paralel işlemleri NUMA düğümü etki alanları arasında eşit olarak dağıtın. Karma paralel uygulamalar için, işlem/iş parçacığı gruplandırma işlemini aynı NUMA etki alanlarında tutun ve ideal olarak aynı L3 önbelleğini paylaşın. Toplam iş parçacığı sayısının toplam çekirdek sayısını aşmadığından emin olun.

Aşağıdaki görüntüde 2 NUMA etki alanı ve 44 çekirdek içeren bir HC44 SKU gösterilmektedir.

Image that shows the HC44 NUMA domains.

Aşağıdaki görüntüde 15 NUMA etki alanı ve 60 çekirdek içeren bir HB60 SKU gösterilmektedir.

Image that shows the HB60 NUMA domains.

Bellek bant genişliğine bağlı uygulamalar

Bellek bant genişliğine bağlı bir uygulamanız varsa, her NUMA düğümü etki alanındaki paralel işlemlerin ve iş parçacıklarının sayısını azaltarak VM'de daha iyi performans elde edebilirsiniz. Bu işlem başına daha fazla bellek bant genişliği sağlayabilir ve duvar saati süresini kısaltabilir.

Örneğin, 30 NUMA düğüm etki alanıyla HB120_v2 SKU kullanıyorsanız, NUMA düğüm etki alanı başına 1, 2 ve 3 işlem ve iş parçacığı çalıştırmayı deneyebilirsiniz (örneğin: VM başına 30, 60 ve 90 işlem ve iş parçacığı). Daha sonra hangi yapılandırmanın en iyi performansı verdiğini görebilirsiniz.