क्या अभी भी आधुनिक हार्डवेयर पर असमानता का उपयोग है?


39

यह सवाल पहले भी पूछा जा चुका है, लेकिन मेरा मानना ​​है कि फिर से पूछे जाने के लिए दुनिया काफी बदल गई है।

क्या आज के सिस्टम पर असंबद्धता का कोई उपयोग है जहां हमारे पास NUMA- सक्षम सीपीयू हैं, जिनके कोर के बीच मेमोरी साझाकरण है?

रनिंग से irqbalance --oneshot --debugपता चलता है कि आधुनिक VMware ESXi पर्यावरण पर एक आभासी अतिथि कोर के बीच NUMA नोड्स साझा कर रहा है।

# irqbalance --oneshot --debug 3
Package 0:  numa_node is 0 cpu mask is 0000000f (load 0)
    Cache domain 0:  numa_node is 0 cpu mask is 0000000f  (load 0)
            CPU number 0  numa_node is 0 (load 0)           
            CPU number 1  numa_node is 0 (load 0)
            CPU number 2  numa_node is 0 (load 0)
            CPU number 3  numa_node is 0 (load 0)

इस मामले में असमानता यह पता लगाएगी कि इसे NUMA सिस्टम पर चलाया जा रहा है या नहीं। यह हमारी प्रक्रिया की निगरानी के साथ खिलवाड़ करता है।

हम चल रहे इस पर गौर करना चाहिए numad इस तरह के सिस्टम पर बजाय irqbalance?

यह ज्यादातर VMware वर्चुअलाइज्ड सर्वर के लिए दिलचस्प है।

जवाबों:


27

यहां रेडहैट में एक तकनीशियन का एक जवाब है। हालांकि मेरा मानना ​​है कि अधिकांश उद्यम हार्डवेयर NUMA सक्षम हैं। और जहाँ तक मुझे पता है VMware भी आपके VMs को उसी NUMA नोड पर फिट करने का प्रयास करेगा जब तक कि उसका CPU कॉन्फ़िगरेशन फिट बैठता है।

अनुभव (विशेषकर वीएमवेयर से संबंधित) की काफी सराहना की जाएगी।

यह सच है "क्योंकि" आधुनिक सर्वर का। ध्यान रखें कि मल्टी-सीपीयू / मूल-कोर NUMA के समान नहीं है। कई मल्टी-सीपीयू / कोर सिस्टम हैं जिनमें एनयूएमए नहीं है।

नीचे मेरी व्याख्या को पढ़ने से पहले, कृपया ऊपर दिए गए निर्देशों के साथ-साथ आईआरक्यू एफिनिटी दस्तावेज़ भी पढ़ें:

आरएचईएल 6 प्रदर्शन ट्यूनिंग गाइड

आरएचईएल 6 के लिए कम विलंबता प्रदर्शन ट्यूनिंग

सब पढ़ लिया? महान, आपको मुझसे ज्यादा कुछ नहीं सुनना चाहिए! ;-) लेकिन सिर्फ मामले में आप अधीर थे, यहाँ आप उन्हें क्यों चाहते हैं ...

IRQbalance IRQ के सभी अनुरोधों को एक ही CPU पर बैकअप लेने से बचाता है। मैंने 4+ CPU कोर के साथ कई सिस्टम को धीमा देखा है क्योंकि विभिन्न CPU पर सभी प्रक्रियाएँ नेटवर्क या IRQ अनुरोधों को संसाधित करने के लिए CPU 0 पर प्रतीक्षा कर रही हैं। CPU 0 बहुत ही व्यस्त दिखता है, अन्य सभी CPU व्यस्त नहीं हैं, फिर भी ऐप्स बहुत धीमे हैं। एप्लिकेशन धीमे हैं क्योंकि वे CPU 0 से अपने IO अनुरोधों पर प्रतीक्षा कर रहे हैं।

IRQbalance सभी CPU के बीच एक बुद्धिमान तरीके से इसे संतुलित करने की कोशिश करता है और, जब संभव हो, IRQ प्रसंस्करण को प्रक्रिया के करीब रखता है। यह एक ही कोर हो सकता है, एक ही कैश पर एक समान डाई या कोर में एक कोर बांटने वाला कोर हो सकता है।

जब तक आपको असमानता का उपयोग नहीं करना चाहिए:

आप मैन्युअल रूप से बहुत अच्छे कारण (कम विलंबता, रीयलटाइम आवश्यकताओं, आदि) के लिए अपने ऐप / आईआरक्यू को विशिष्ट कोर में पिन कर रहे हैं।

आभासी मेहमान। इसका वास्तव में कोई मतलब नहीं है क्योंकि जब तक आप अतिथि को विशिष्ट सीपीयू और आईआरक्यू और समर्पित नेट / स्टोरेज हार्डवेयर के लिए पिन नहीं कर रहे हैं, तब तक आप संभवत: उन लाभों को नहीं देख पाएंगे जो आप नंगे धातु पर करते हैं। लेकिन अपने केवीएम / RHEV मेजबान irqbalance और का उपयोग करना चाहिए numad और देखते

अन्य बहुत महत्वपूर्ण ट्यूनिंग टूल ट्यून्ड प्रोफाइल और सुमाड हैं। उनके बारे में पढ़ें! उन्हें इस्तेमाल करें!

नुमाड असंबद्धता के समान है, यह सुनिश्चित करने की कोशिश करता है कि एक प्रक्रिया और इसकी मेमोरी एक ही सुमा क्षेत्र में हो। कई कोर के साथ हमें विलंब के दौरान एक महत्वपूर्ण कमी दिखाई देती है जिसके परिणामस्वरूप लोड के तहत बहुत अधिक विश्वसनीय प्रदर्शन होता है।

यदि आप कुशल हैं, मेहनती हैं, और नियमित रूप से निगरानी करते हैं या आपके पास एक बहुत ही अनुमानित कार्यभार है, तो आप सीपीयू को मैन्युअल रूप से प्रक्रियाओं / आईआरक्यू को पिन करके बेहतर प्रदर्शन प्राप्त कर सकते हैं। इन स्थितियों में भी, irqbalance और numad मिलान के बहुत करीब आते हैं। लेकिन अगर आप अनिश्चित हैं या आपका कार्यभार अप्रत्याशित है, तो आपको अनियमितता और सुन्नता का उपयोग करना चाहिए।


5
FWIW, कुछ 10GEE मैनुअल बेहतर थ्रूपुट प्राप्त करने के लिए असमानता को अक्षम करने की सलाह देते हैं ...
rogerdpack

8
उनकी बेंचमार्क संख्याओं का मिलान करने के लिए पूर्ण अधिकतम प्राप्त करने के लिए, हाँ, आपको चीजों को एक निश्चित तरीके से एक साथ करने की आवश्यकता है, लेकिन ये बेंचमार्क आम तौर पर वास्तविक जीवन के काम के भार से मेल नहीं खाते हैं। यदि आपके पास सर्वर एक बहुत ही पूर्वानुमानित उपयोग पैटर्न में एक अत्यंत विलंबता संवेदनशील आवश्यकता के साथ सर्वर में चल रहा है, तो ठीक है, आगे बढ़ो और चीजों के लिए मैन्युअल रूप से प्रोसेसर आत्मीयता को कॉन्फ़िगर करें। लेकिन अगर आवेदन एक वास्तविक विश्व उपयोग के मामले में अधिक है जहां चीजें प्रक्रियाओं और भार की एक विस्तृत श्रृंखला में भिन्न हो सकती हैं, तो मैं रेड हैट तकनीक से सहमत हूं। लिनक्स NUMA संतुलन अच्छी तरह से प्रगति कर रहा है।
जार्जबी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.