Teorik sınırlarla ilgileniyorum, belki de çok sayıda CPU'ya sahip sistem örnekleri ile ilgileniyorum.
Teorik sınırlarla ilgileniyorum, belki de çok sayıda CPU'ya sahip sistem örnekleri ile ilgileniyorum.
Yanıtlar:
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.
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.
CONFIG_NR_CPUS
sınırların yükseltilebileceğini söylüyor CONFIG_MAXSMP
.
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 .
Bu bebek 10.368 koşuyor!
İş 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.
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.