2 प्रोसेसर सर्वर और रैम


0

मैं दो E5-2660v2 प्रोसेसर और 128GB RAM के साथ डेल T620 सर्वर खरीदने की प्रक्रिया में हूं। डेल ने मुझे बताया कि अगर मैं 128 जीबी रैम का ऑर्डर करता हूं तो मेरे पास 64 जीबी प्रति प्रोसेसर होना चाहिए। ऐसा क्यों है?

मान लें कि मैं सभी 20 कोर पर एक एकल प्रक्रिया चला रहा हूं जो 40GB डेटा को मेमोरी में लोड करता है और इसे प्रोसेस करता है। क्या मुझे दो बार डेटा (1 प्रति प्रोसेसर) लोड करने की आवश्यकता है? यदि हां, तो मैं ऐसा कैसे करूंगा? यदि नहीं, तो मेमोरी पृथक्करण कंप्यूटर को किस तरीके से प्रभावित करता है?


1
डेल प्रतिनिधि से पूछें कि वह 64 जीबी प्रति प्रोसेसर से क्या मतलब है। सामान्य तौर पर यदि आप एकल ओएस लोड करते हैं, तो सभी 128 जीबी ओएस के लिए उपलब्ध होना चाहिए। प्रोसेसर को व्यक्तिगत रैम नहीं सौंपा गया है
Ganesh R.

यह Xeon प्लेटफ़ॉर्म को डिज़ाइन करने के तरीके के साथ करना है। प्रत्येक CPU का अपना मेमोरी कंट्रोलर होता है।
Ramhound

@ राम यह मशीन को कैसे प्रभावित करता है? दो बार डेटा लोड करना चाहिए और यदि ऐसा है तो कैसे?
Roey Nissim

सिस्टम अनवेयर है दो मेमोरी कंट्रोलर हैं। इसके भी विशिष्ट तथ्य से अनभिज्ञ हैं कि दो प्रक्रियाएँ हैं। यह केवल जानता है कि कितने कोर धागे तक इसकी पहुंच है।
Ramhound

@ रामाउंड मूल रूप से मेरी प्रोग्रामिंग को प्रभावित नहीं करना चाहिए और मेरे पास 128 जीबी रैम के साथ 20 कोर होंगे, है ना?
Roey Nissim

जवाबों:


2

शायद तीन कारण हैं कि कोई क्यों चाहेगा कि मेमोरी दो प्रोसेसर के बीच विभाजित हो जाए।

सबसे पहले, प्रत्येक प्रोसेसर के मेमोरी इंटरफ़ेस में एक दिया गया अधिकतम बैंडविड्थ होता है। प्रोसेसर की संख्या को दोगुना करके, इस पीक मेमोरी बैंडविड्थ को दोगुना कर दिया जाता है।

दूसरा, कुछ प्रणालियों में मेमोरी इंटरफेस की गति एक मेमोरी चैनल से जुड़े संख्या मॉड्यूल द्वारा सीमित की जा सकती है, इसलिए प्रति चैनल एक मॉड्यूल का उपयोग करके (दो बार कई प्रोसेसर के साथ और दो बार कई चैनलों के रूप में) उच्च बैंडविड्थ की अनुमति दे सकता है। इसके अलावा, एक प्रोसेसर द्वारा समर्थित मेमोरी मॉड्यूल की संख्या समान सिस्टम क्षमता प्रदान करने के लिए अधिक महंगे मॉड्यूल के उपयोग को मजबूर कर सकती है।

तीसरा, अगर कार्यभार को अन्य प्रोसेसर (जैसे, बड़े थ्रेड काउंट या कम थ्रेड्स जो कि L3 क्षमता प्रति थ्रेड से अधिक लाभ होता है) से प्रसंस्करण में फ़ायदा होता है, तो यह कुछ मेमोरी एक्सेस के अधिक विलंबता (और संभवतः कम बैंडविड्थ) से अधिक खो देता है। अन्य प्रोसेसर, तब भी ओएस (NUMA [नॉन-यूनिफॉर्म मेमोरी एक्सेस] ऑप्टिमाइज़ेशन द्वारा मेमोरी आवंटन के महत्वपूर्ण अनुकूलन के बिना, मेमोरी और शेड्यूलिंग थ्रेड्स को आवंटित करना ताकि थ्रेड के प्रोसेसर से जुड़ी मेमोरी का अधिक बार उपयोग किया जाता है) प्रदर्शन बेहतर हो सकता है। पर्याप्त NUMA अनुकूलन (जो कार्यभार के लिए व्यावहारिक नहीं हो सकता है) के साथ, अधिकांश मेमोरी एक्सेस तेज, स्थानीय मेमोरी तक होगी।

केवल दो नोड्स पर, मेमोरी की प्रतिकृति NUMA कारक (स्थानीय मेमोरी के सापेक्ष कितनी धीमी रिमोट मेमोरी है) के बाद से होने की संभावना नहीं है। यदि किसी विशेष एक्सेस के लिए मेमोरी किसी दूरस्थ प्रोसेसर से जुड़ी है, तो अनुरोध रिमोट प्रोसेसर के मेमोरी कंट्रोलर (इंटेल के लिए QPI) के लिए एक इंटरप्रोसेसर इंटरकनेक्ट (QPI) पर यात्रा करेगा (हालांकि उस प्रोसेसर के L3 में कैश हिट संभव है) और मेमोरी कंट्रोलर (या) L3 कैश) इंटरप्रोसेसर इंटरकनेक्ट के माध्यम से आवश्यक रूप से डेटा भेजने वाले अनुरोध को पूरा करेगा।

(बड़ी संख्या में नोड्स / प्रोसेसर वाला सिस्टम OS डुप्लिकेट मेमोरी सामग्री से लाभान्वित हो सकता है - जो कि लेखन योग्य नहीं हो सकता है। कुछ ऑपरेटिंग सिस्टम ने NUMA ऑप्टिमाइज़ेशन के रूप में माइग्रेशन (एक अलग नोड में मेमोरी कंटेंट को स्थानांतरित करने) का भी उपयोग किया है।)


महान स्पष्टीकरण के लिए धन्यवाद, लेकिन अगर मेरे कार्यक्रम पर इसका कोई प्रभाव है तो मैं समझ नहीं सकता हूं क्या मैं बस मान सकता हूं कि मेरे पास 128GB के साथ 20 कोर हैं और हार्डवेयर और ओएस को इसे संभालने दें?
Roey Nissim

@RoeyNissim 2 से अंतिम पैराग्राफ को समझाने की कोशिश की, हार्डवेयर रिमोट मेमोरी तक पहुंचता है। ओएस दूरस्थ मेमोरी एक्सेस की संख्या को कम करने का प्रयास कर सकता है (और प्रोसेसर के संबंध में जानकारी प्रदान करने के लिए इंटरफ़ेस प्रदान कर सकता है)। NUMA (जिसमें कैश के फायदे भी हो सकते हैं) के लिए एप्लिकेशन डिज़ाइन किए जा सकते हैं, लेकिन गैर-NUMA- अनुकूलित एप्लिकेशन सही तरीके से चलेंगे (और OS कुछ हद तक ऑप्टिमाइज़ कर सकते हैं) और आम तौर पर केवल एक छोटे (जैसे, & lt; 2%) के प्रदर्शन का दंड भुगतना होगा एक छोटे से सिस्टम में। सामान्य तौर पर, ओएस को ऐसी जटिलताओं के बारे में चिंता करने दें।
Paul A. Clayton

0

इसका इंटेल आर्किटेक्चर के साथ क्या करना है। मेमोरी को सभी प्रोसेसर के बीच समान रूप से विभाजित किया जाना चाहिए ताकि आपके मामले में आप प्रत्येक प्रोसेसर बस में 64 जीबी मेमोरी स्थापित करें। ओएस अभी भी सभी 128GB मेमोरी देखता है लेकिन मेमोरी दो सीपीयू में फैली हुई है।

यह भी महत्वपूर्ण है कि सीपीयू 1 पर मेमोरी सीपीयू 2 पर मेमोरी से शारीरिक रूप से मेल खाती है। उदाहरण के लिए, यदि आपके पास A1, A2 और A3 (CPU में संलग्न है CPU 1) में मेमोरी है, तो आपको बिल्ट बी 1, बी 2 और बी 3 (बी अटैचमेंट टू सीपीयू 2) में बिल्कुल उसी प्रकार की मेमोरी टाइप / युक्ति की आवश्यकता है। यदि आप ऐसा नहीं करते हैं तो CPU2 ऑनलाइन नहीं आएगा।

यही कारण है कि दोहरी सीपीयू सक्षम प्रणाली पर सिर्फ 1 सीपीयू के बजाय इन दिनों 2 सीपीयू को धकेल दिया जाता है। यदि आपके पास केवल 1 सीपीयू है तो 'बी' स्लॉट से जुड़ी किसी भी मेमोरी का उपयोग नहीं किया जा सकता है

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