जब आप सर्वर पर प्रदर्शन के बारे में बात कर रहे हैं, तो इसे देखने के कुछ अलग तरीके हैं। स्पष्ट प्रतिक्रिया समय (नेटवर्क विलंबता के समान) और थ्रूपुट (नेटवर्क बैंडविड्थ के समान) है।
डिफ़ॉल्ट रूप से सक्षम संतुलित पावर सेटिंग्स के साथ विंडोज सर्वर जहाज के कुछ संस्करण। जैसा कि जेफ ने बताया। विंडोज 2008 आर 2 उनमें से एक है। बहुत कम सीपीयू इन दिनों सिंगल कोर हैं इसलिए यह स्पष्टीकरण लगभग हर विंडोज सर्वर पर लागू होता है जिसे आप सिंगल-कोर वीएम के अपवाद के साथ चलाएंगे। (उन पर बाद में)।
जब बैलेंस्ड पावर प्लान सक्रिय होता है, तो सीपीयू वापस थ्रॉटल करने का प्रयास करता है कि यह कितनी शक्ति का उपयोग कर रहा है। जिस तरह से यह होता है वह सीपीयू कोर के आधे हिस्से को "पार्किंग" के रूप में जाना जाता है। सीपीयू का केवल आधा ही एक समय में उपलब्ध होगा, इसलिए यह कम यातायात के समय कम बिजली का उपयोग करता है। यह अपने आप में कोई समस्या नहीं है।
आईएस क्या समस्या है, यह तथ्य कि जब सीपीयू अप्रकाशित होता है, तो आपने सिस्टम में उपलब्ध सीपीयू साइकिलों को दोगुना कर दिया है और सिस्टम पर लोड को असंतुलित कर दिया है, इसे (उदाहरण के लिए) 70% उपयोग से 35% उपयोग में ले रहे हैं। सिस्टम यह देखता है और ट्रैफिक के फटने के बाद, यह सोचता है "अरे, मुझे शक्ति के संरक्षण के लिए इसे वापस डायल करना चाहिए"। और इसलिए यह करता है।
यहाँ बुरा हिस्सा है। सीपीयू कोर के भीतर गर्मी और बिजली के असमान वितरण को रोकने के लिए, यह सीपीयू को पार्क करने की प्रवृत्ति है जिसे हाल ही में पार्क नहीं किया गया है। और इसके लिए ठीक से काम करने के लिए, सीपीयू को सीपीयू रजिस्टरों (एल 1, एल 2 और एल 3 कैश) से कुछ अन्य स्थान (सबसे अधिक संभावना मुख्य मेमोरी) में सब कुछ फ्लश करने की आवश्यकता होती है।
एक काल्पनिक उदाहरण के रूप में, मान लें कि आपके पास C1-C8 के साथ 8 कोर सीपीयू है।
- सक्रिय: C1, C3, C5, C7
- पार्च्ड: C2, C4, C6, C8
जब ऐसा होता है, तो वे सभी कुछ समय के लिए सक्रिय हो जाते हैं, और फिर सिस्टम उन्हें निम्नानुसार पार्क करेगा:
- सक्रिय: C2, C4, C6, C8
- पार्च्ड: C1, C3, C5, C7
लेकिन ऐसा करने के लिए, ऐसा करने के लिए L1-L3 कैश से सभी डेटा को फ्लश करने के साथ ओवरहेड की एक अच्छी मात्रा होती है, ताकि सीपीयू पाइपलाइन से फ्लश किए गए प्रोग्रामों के लिए अजीब त्रुटियां न हों।
इसके लिए एक आधिकारिक नाम होने की संभावना है, लेकिन मैं इसे सीपीयू थ्रशिंग के रूप में समझाना पसंद करता हूं। मूल रूप से प्रोसेसर अधिक समय व्यतीत करने में व्यस्त रहते हैं और काम के डेटा को आंतरिक रूप से काम करने में व्यस्त कर देते हैं।
यदि आपके पास किसी भी प्रकार का एप्लिकेशन है जिसे इसके अनुरोधों के लिए कम विलंबता की आवश्यकता है, तो आपको संतुलित पावर सेटिंग्स को अक्षम करना होगा। यदि आपको यकीन नहीं है कि यह एक समस्या है, तो निम्न कार्य करें:
- "कार्य प्रबंधक" खोलें
- "प्रदर्शन" टैब पर क्लिक करें।
- "ओपन रिसोर्स मॉनिटर" पर क्लिक करें
- "सीपीयू" टैब चुनें
- विभिन्न सीपीयू में विंडो के दाईं ओर देखें।
यदि आप उनमें से किसी को पार्क करते हुए देखते हैं, तो आप देखेंगे कि उनमें से आधे किसी भी समय पार्क किए गए हैं, वे सभी आग लगा देंगे, और फिर दूसरे आधे भाग में पार्क हो जाएंगे। यह बारी-बारी से आगे-पीछे होता है। इस प्रकार, सिस्टम सीपीयू जोर दे रहे हैं।
वर्चुअल मशीन: वर्चुअल मशीन चलाते समय यह समस्या और भी बदतर होती है क्योंकि हाइपरविजर का अतिरिक्त ओवरहेड होता है। आम तौर पर बोलने के लिए, VM को चलाने के लिए, प्रत्येक टाइमलेस में प्रत्येक कोर के लिए हार्डवेयर को समय पर उपलब्ध होना चाहिए।
यदि आपके पास 16 कोर का हार्डवेयर है, तो आप 16 से अधिक कुल कोर का उपयोग करके वीएम चला सकते हैं, लेकिन प्रत्येक समय के लिए, केवल 16 वर्चुअल सीपीयू तक ही उस समय के स्लाइस के लिए पात्र होंगे और हाइपरवाइजर को वीएम के लिए सभी कोर को फिट करना होगा। उस समय में। यह कई बार फैल सकता है। (ए टाइमलेस अनिवार्य रूप से एक्स सीपीयू चक्रों का एक सेट है। यह 1000 हो सकता है या यह 100k चक्र हो सकता है)
Ex: 8 वीएम के साथ 16 कोर हार्डवेयर। 6 में 4 वर्चुअल CPU (4C) और 2 में 8 वर्चुअल CPU (8C) हैं।
Timeslice 1: 4x4C Timeslice 2: 2x8C Timeslice 3: 2x4C + 1x8C Timeslice 4: 1x8C + 2x4C
हाइपरविजर क्या नहीं कर सकता है एक 8 वीसीपीयू वीएम के पहले 4 सीपीयू के लिए एक टाइमलाइन के लिए आवंटन का आधा भाग और फिर अगले टाइमस्लाइज़ पर, बाकी को वीएम के अन्य 4 वीसीपीयू को दें। यह सब या एक timeslice के भीतर कुछ भी नहीं है।
यदि आप Microsoft के हाइपर-वी का उपयोग कर रहे हैं, तो पावर कंट्रोल सेटिंग्स को होस्ट ओएस में सक्षम किया जा सकता है, जिसका अर्थ है कि यह क्लाइंट सिस्टम के लिए प्रचारित करेगा, इस प्रकार उन्हें भी प्रभावित करेगा।
एक बार जब आप देखते हैं कि यह कैसे काम करता है, तो यह देखना आसान है कि बैलेंस्ड पावर कंट्रोल सेटिंग्स का उपयोग प्रदर्शन समस्याओं और सुस्त सर्वर का कारण बनता है। अंतर्निहित मुद्दों में से एक यह है कि आने वाले अनुरोध को सीपीयू पार्किंग / अनपार्किंग प्रक्रिया के लिए प्रतीक्षा करने की आवश्यकता है, इससे पहले कि सर्वर आने वाले अनुरोध का जवाब देने में सक्षम हो, चाहे वह डेटाबेस क्वेरी हो, वेब सर्वर अनुरोध या कुछ और। ।
कभी-कभी, सिस्टम अनुरोध के बीच में सीपीयू को पार्क या अनपार्क कर देगा। इन मामलों में, अनुरोध सीपीयू पाइपलाइन में शुरू होगा, इसे से बाहर निकाल दिया जाएगा, और फिर एक अलग सीपीयू कोर वहां से प्रक्रिया को उठाएगा। यदि यह पर्याप्त अनुरोध है, तो यह अनुरोध के दौरान कई बार हो सकता है, जो कि 15 सेकंड के डेटाबेस क्वेरी के लिए 5 सेकंड डेटाबेस क्वेरी होनी चाहिए।
बैलेंस्ड पावर का उपयोग करने से आप जो सबसे बड़ी चीज देख रहे हैं, वह यह है कि सिस्टम आपके द्वारा किए गए प्रत्येक अनुरोध के बारे में प्रतिक्रिया देने के लिए धीमा महसूस करने जा रहा है।