लिनक्स कर्नेल कितने कोर को संभाल सकता है?


14

मैं सैद्धांतिक सीमाओं में रुचि रखता हूं, शायद सीपीयू की बड़ी संख्या वाले सिस्टम के उदाहरणों के साथ।


2
इसे कितने संभाल सकते हैं? या आप कुछ लाभ खोने से पहले इसे कितने संभाल सकते हैं? भी क्या गिरी? मुझे संदेह है कि सुपर कंप्यूटर को चलाने के लिए कंप्यूटर द्वारा पैच किए जाने पर यह उत्तर कुछ हद तक बदल जाता है। मुझे लगता है कि 4096 प्रोसेसर का उपयोग करके एक ही उदाहरण के बारे में पढ़ना याद है ...
xenoterracide

क्या पैच सेट, सामान्य पैचसेट 4096 प्रोसेसर को संभाल नहीं सकता है लेकिन इसे करने के लिए लिनक्स को पैच किया गया है। (IIRC कुछ उत्तरों से लगता है कि यह सुझाव दे सकता है)
xenoterracide

@xeno मुझे लगता है कि 4096 प्रोसेसर को हैंडल करने वाला एक पैचसेट सामान है जिसका उत्तर पर उल्लेख किया जाना चाहिए।
tshepang 13

मुझे इससे ज्यादा याद नहीं है, नहीं तो मैं एक जवाब देता, मैं भी उसका प्रदर्शन हासिल कर लेता हूँ 16 कोर सीमित थे ... और कर्नेल के कुछ हिस्सों को फिर से लिखने की आवश्यकता थी जो पहले ही शुरू हो चुके थे। लेकिन वास्तव में मेरे पास कोई उद्धरण नहीं है और मैं 100% नहीं हूं इसलिए मैं जवाब नहीं दे रहा हूं।
xenoterracide

जवाबों:


18

कम से कम 2048 अभ्यास में। एक ठोस उदाहरण के रूप में, SGI अपने यूवी सिस्टम को बेचता है, जो 256 सॉकेट (2,048 कोर) और 16TB साझा मेमोरी का उपयोग कर सकता है, जो सभी एक कर्नेल के तहत चल रहे हैं। मुझे पता है कि कम से कम कुछ सिस्टम हैं जो इस कॉन्फ़िगरेशन में बेचे गए हैं।

SGI के अनुसार:

Altix UV पूरी तरह से अनमॉडिफाइड लिनक्स चलाता है, जिसमें नोवेल और रेड हैट दोनों के मानक वितरण शामिल हैं।


11

यह लॉन्चपैड को उबंटू के बारे में कहना है, इसलिए मुझे लगता है कि यह दूसरों पर लागू होता है:

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.

जो कि x86 और x86_64 के लिए क्रमशः 32 या 64 सीपीयू है।

रैदाट वही कहते हैं, लेकिन प्रबंधन के अनुकूल तालिका में । Redhat EL6 x86 के लिए 32, या x86_64 के लिए 128 या 4096 CPUs कोर कर सकता है।


4
मेहराब / x86 / Kconfig का कहना है कि CONFIG_NR_CPUSअगर CONFIG_MAXSMPये सक्षम है तो ये सीमाएं बढ़ाई जा सकती हैं ।
18

6

X86_64 लिनक्स कर्नेल एकल सिस्टम छवि में अधिकतम 4096 प्रोसेसर थ्रेड्स को संभाल सकता है। इसका मतलब यह है कि हाइपर थ्रेडिंग सक्षम होने के साथ, प्रोसेसर कोर की अधिकतम संख्या 2048 है। हां 2048 से अधिक प्रोसेसर कोर वाले कंप्यूटर हैं; लेकिन ये क्लस्टर के रूप में चलते हैं जहां कई लिनक्स कर्नेल सहयोग करते हैं, एक उच्च गति इंटरकनेक्ट से जुड़े होते हैं, आमतौर पर एक इनफिनिबेंड कपड़े।

सबसे वर्तमान कर्नेल ३.१३ से, ~ / आर्च / x86 / कोन्कफिग में:

config NR_CPUS

    ---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.

अपडेट: नए कर्नेल पर यह आर्किटेक्चर विशिष्ट है - उदाहरण के लिए 4.15 x86_64 पर आपको सही परिस्थितियों में NR_CPUS को 8192 पर सेट करने की अनुमति मिलती है जबकि 32 बिट आर्म 32 पर रुक जाता है


SGI Altix UV 1000 (2009 से) सिंगल सिस्टम इमेज में 2560 कोर तक हो सकती है।
एसपी आरिफ़ सहरी विबोवो

2

यह बच्चा 10,368 चलाता है!


2
मुझे पता है कि यह एक पुरानी पोस्ट है, लेकिन आप एक क्लस्टर कंप्यूटर से लिंक कर रहे हैं। सवाल एकल कर्नेल उदाहरण को चलाने के बारे में है।
फ्रोडेबोरली

1

थ्रेड मल्टीटास्किंग मॉडल और थ्रेड मैनेजमेंट स्कीम के लिए व्यक्तिपरक हैं। अगर मैं सही तरीके से याद करूं तो Gdt of Intel based सिस्टम का उपयोग linux में किया जाता है। विचार यह है कि इसमें अधिकतम आकार में 8192 धागे होने की संभावना है। यह मानते हुए कि सिस्टम थ्रेड्स को प्रबंधित करने के लिए gdt का उपयोग कर रहा है। 32 बिट मशीनों पर टास्क स्विचिंग का प्रबंधन किया जाता है और 32 और 64 बिट मशीनों पर वैक्टर में जीडीटी प्रविष्टियाँ होनी आवश्यक हैं। यह सुनिश्चित नहीं है कि यह कैसे होता है लेकिन एक ही मुखरता को प्राप्त करना होता है। टास्क स्विचिंग कॉन्सेप्ट्स टास्किंग मॉडल में GDT को इट्रिएट करते हैं।

यदि आप जीडीटी योजना से बाहर निकलते हैं, तो आप निश्चित रूप से उस तक पहुंच सकते हैं जो आपके पास है जब आपके पास मेमोरी है, प्रत्येक थ्रेड के लिए, एक पेज स्टैक फ्रेम, थ्रेड के लिए पेज कोड बेस और हीप स्पेस का पेज। आप यह नहीं मान सकते हैं कि आपके पास कोड या हीप का एक पृष्ठ है, जो यादृच्छिक चर है। आम तौर पर प्रत्येक धागे के लिए दो स्टैक फ्रेम होते हैं, एक धागे द्वारा बनाए रखा जाता है और एक लिनक्स कर्नेल द्वारा बनाए रखा जाता है। आप स्वैप स्थान की आभासी मेमोरी अवधारणाओं को जोड़ते हैं और मॉडल पानी से बाहर निकल जाता है लेकिन यह थ्रेड प्राथमिकता के बारे में है।


0

इसके अलावा:

यदि आप UV SGI पर नियंत्रण के रूप में लिनक्स का उपयोग कर रहे हैं, और आप अपने साथ 4.15 कर्नेल पर Bladecenters का उपयोग कर रहे हैं, तो आप मोमेंट पर उपयोग कर सकते हैं:

4096 ब्लेड रैक। 1 रैक 1024 कोर x 4096 करोड़ का उपयोग कर। यह विन्यास उस समय होगा जब लिनक्स के तहत उच्चतम कोर का उपयोग किया जाएगा। आप Red Hat के अंतर्गत सभी कोर को नियंत्रित कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.