Linux çekirdeği kaç çekirdek kullanabilir?


14

Teorik sınırlarla ilgileniyorum, belki de çok sayıda CPU'ya sahip sistem örnekleri ile ilgileniyorum.


2
Kaç tane işleyebilir? ya da bir faydasını kaybetmeden önce kaç kişiyle başa çıkabilir? ayrıca ne çekirdek? Süper bir bilgisayar çalıştırmak için yamalı bir bilgisayar için bu cevabın biraz değiştiğinden şüpheleniyorum. 4096 işlemci kullanarak tek bir örnek hakkında okuma hatırlıyorum ...
xenoterracide

ne yama seti, normal patchset 4096 işlemcileri işleyemez ama linux bunu yapmak için yamalı. (IIRC bazı cevaplar bunu gösteriyor gibi görünüyor)
xenoterracide

@xeno Bence 4096 işlemcileri işleyen bir patchset bile, Cevapta belirtilmesi gereken şeyler.
tshepang

Bundan daha fazlasını hatırlamıyorum, aksi takdirde bir cevap verirdim, aynı zamanda performans kazancı 16'yı geçiyor mu? çekirdekler sınırlıydı ... ve çekirdeğin bazı bölümlerinin başlamış olan bir yeniden yazmaya ihtiyacı vardı. ama gerçekten hiç alıntım yok ve% 100 değilim, bu yüzden cevap vermiyorum.
xenoterracide

Yanıtlar:


18

Uygulamada en az 2048. Somut bir örnek olarak, SGI , hepsi tek bir çekirdek altında çalışan 256 soket (2.048 çekirdek) ve 16 TB paylaşılan bellek kullanabilen UV sistemini satıyor . Bu konfigürasyonda satılan en az birkaç sistem olduğunu biliyorum.

SGI'ye göre:

Altix UV, hem Novell hem de Red Hat'ın standart dağıtımları da dahil olmak üzere tamamen değiştirilmemiş Linux çalıştırıyor.


11

Launchpad'in Ubuntu hakkında söylediği şey budur, bu yüzden sanırım diğerleri için geçerlidir:

1.Intel x86:
Maximum CPUs: 32 (including logical CPUs)
Maximum memory: 64GB
Maximum filesize: 8TB
Maximum filesystem size (ext3) 16TB
Maximum per-process virtual address space: 4GB

2.AMD64/EM64T:
Maximum CPUs: 64
Maximum memory: 128GB
Maximum filesize: 8TB
Maximum filesystem size (ext3): 16TB
Maximum per-process virtual address space: N/A

These are standard max limitations whereas Linux cluster systems can scale up to 1024 CPU's.

Bu sırasıyla x86 ve x86_64 için 32 veya 64 CPU'dur.

Redhat de aynı şeyi söylüyor, ama yönetim dostu bir tabloda . Redhat EL6, x86 için 32 veya x86_64 için 128 veya 4096 CPU çekirdeği yapabilir.


4
arch / x86 / Kconfig , etkinleştirilirse bu CONFIG_NR_CPUSsınırların yükseltilebileceğini söylüyor CONFIG_MAXSMP.
ephemient

6

X86_64 Linux çekirdeği, tek bir sistem görüntüsünde maksimum 4096 İşlemci iş parçacığını işleyebilir. Bu, hiper iş parçacığı etkinken, maksimum işlemci çekirdeği sayısının 2048 olduğu anlamına gelir. Evet, 2048'den fazla işlemci çekirdeğine sahip bilgisayarlar var; ancak bunlar, birkaç Linux çekirdeğinin işbirliği yaptığı, yüksek hızlı bir ara bağlantıyla, tipik olarak bir Infiniband yapısı ile bağlantılı kümeler olarak çalışır.

~ / arch / x86 / Kconfig içinde en güncel çekirdek 3.13'ten:

NR_CPUS yapılandırması

    ---help---
      This allows you to specify the maximum number of CPUs which this
      kernel will support.  If CPUMASK_OFFSTACK is enabled, the maximum
      supported value is 4096, otherwise the maximum value is 512.  The
      minimum value which makes sense is 2.

      This is purely to save memory - each supported CPU adds
      approximately eight kilobytes to the kernel image.

Güncelleme: Daha yeni çekirdeklerde bu mimariye özgüdür - örneğin 4.15 x86_64 , doğru koşullarda NR_CPUS değerini 8192 olarak ayarlamanıza izin verirken 32 bit kol 32'de durur .


SGI Altix UV 1000 (2009'dan beri) tek sistem görüntüsünde 2560 çekirdeğe kadar sahip olabilir.
SP Arif Sahari Wibowo

2

Bu bebek 10.368 koşuyor!


2
Bunun eski bir gönderi olduğunu biliyorum, ancak bir küme bilgisayarına bağlanıyorsunuz. Soru, tek bir çekirdek örneği çalıştırmakla ilgilidir.
frodeborli

1

İş parçacıkları çoklu görev modeli ve iş parçacığı yönetim şemasına sübjektiftir. Intel tabanlı sistemlerin Gdt'ı doğru hatırlıyorsam linux'da kullanılır. Fikir, maksimum boyutta 8192 iplik olasılığına sahip olmasıdır. Bu, sistemin iş parçacıklarını yönetmek için gdt kullandığını varsayar. 32 bit makinelerde görev değiştirme yönetilir ve 32 ve 64 bit makinelerde kesme vektörlerinin gdt girişleri olması gerekir. Kolun bunu nasıl yaptığından emin değilim, ama aynı eklemin gerçekleştirilmesi gerekiyor. Görev değiştirme kavramları, görev modellerinde GDT'yi yineler.

Gdt şemasından ayrılırsanız, her iş parçacığı için bir sayfa yığını çerçevesi, iş parçacığı için sayfa kodu tabanı ve yığın alanı sayfasına sahip olduğunuz zaman, belleğinize sahip olduğunuza erişebilirsiniz. Rastgele değişkenler olan bir kod veya yığın sayfanız olduğunu varsayamazsınız. Genellikle her bir diş için biri diş tarafından ve diğeri linux çekirdeği tarafından tutulan iki yığın çerçevesi vardır. Takas alanı için sanal bellek kavramları eklersiniz ve model sudan üflenir, ancak konu önceliklidir.


0

Ayrıca:

UV SGI üzerinde Kontrol olarak bir Linux kullanıyorsanız ve Bladecenters'ı kendi 4.15 Çekirdeğiyle kullanıyorsanız, Moment'i şu an kullanabilirsiniz:

4096 Bıçak Rafları. 1 1024 Çekirdek x 4096 Çekirdek kullanarak raf. Bu Yapılandırma şu anda Linux altında en yüksek Çekirdek kullanacaktır. Tüm çekirdekleri Red Hat altında kontrol edebilirsiniz.

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.