यह एक बहुत अच्छा और प्रासंगिक प्रश्न है। जैसा कि हम सभी जानते हैं, एक हाइपर-थ्रेडेड कोर वास्तविक CPU/core नहीं है। इसके बजाए, यह एक वर्चुअल सीपीयू/कोर है (अब से मैं कोर कहूंगा)।विंडोज एक्सपी के रूप में विंडोज सीपीयू शेड्यूलर वास्तविक कोर से हाइपरथ्रेड (वर्चुअल) कोर को अलग करने में सक्षम होना चाहिए। आप कल्पना कर सकते हैं कि इस परिपूर्ण दुनिया में यह उन्हें 'ठीक है' संभालता है और यह कोई मुद्दा नहीं है। आप गलत होंगे
विंडोज 2008 बिज़टॉक सर्वर को अनुकूलित करने के लिए माइक्रोसॉफ्ट की अपनी सिफारिश हाइपर थ्रेडिंग को अक्षम करने की सिफारिश करती है। यह मुझे बताता है कि, हाइपर-थ्रेडेड कोरों का संचालन सही नहीं है और कभी-कभी धागे को हाइपर-थ्रेडेड कोर पर एक समय टुकड़ा मिलता है और जुर्माना (वास्तविक कोर के प्रदर्शन का एक अंश, 10% मैं ' डी अनुमान, और माइक्रोसॉफ्ट अनुमान 20-30%)।
माइक्रोसॉफ्ट लेख संदर्भ जहां वे हाइपरथ्रेडिंग सर्वर दक्षता में सुधार करने को अक्षम करने की सलाह देते हैं: http://msdn.microsoft.com/en-us/library/cc615012(BTS.10).aspx
यह BIOS अद्यतन के बाद दूसरी सिफारिश है, कि कैसे महत्वपूर्ण वे इसे मानते हैं। वे कहते हैं कि:
Microsoft से:
"अक्षम हाइपर-थ्रेडिंग BizTalk पर सर्वर और SQL सर्वर कंप्यूटर
यह महत्वपूर्ण हाइपर-थ्रेडिंग जा के लिए बंद कर दिया है बिज़टॉक सर्वर कंप्यूटर। यह एक BIOS सेटिंग है, आमतौर पर प्रोसेसर सेटिंग्स में पाया जाता है o एफआईओएस सेटअप एफ। हाइपर-थ्रेडिंग सर्वर को बनाता है प्रोसेसर/प्रोसेसर कोर वास्तव में करता है; हालांकि हाइपर-थ्रेडेड प्रोसेसर आम तौर पर 20 और भौतिक प्रोसेसर/प्रोसेसर कोर के प्रदर्शन के 30% के बीच प्रदान करते हैं। जब बिज़टॉक सर्वर प्रोसेसर की संख्या स्व-ट्यूनिंग एल्गोरिदम समायोजित करने के लिए गणना करता है; हाइपर-थ्रेडेड प्रोसेसर इन समायोजन के कारण समायोजित होते हैं जो समग्र प्रदर्शन के लिए हानिकारक है। "
अब, वे कहते हैं कि यह यह आत्म ट्यूनिंग एल्गोरिदम बंद फेंकने की वजह से है, लेकिन फिर पर जाने के विवाद समस्याओं का उल्लेख (सुझाव यह एक बड़ा मुद्दा शेड्यूलिंग, कम से कम मेरे लिए है)। इसे पढ़ें के रूप में आप करेंगे, लेकिन मुझे लगता है कि यह कहते हैं कि यह सब। हाइपरथ्रेडिंग एक अच्छा विचार था जब एक सीपीयू सिस्टम के साथ थे, लेकिन अब सिर्फ एक उलझन है कि इस मल्टी कोर दुनिया में प्रदर्शन को चोट पहुंचा सकते है।
के बजाय पूरी तरह से अक्षम करने हाइपरथ्रेडिंग , आप प्रक्रिया प्रक्रियाओं के लिए डिफ़ॉल्ट सीएसओ affinities सेट करने के लिए प्रक्रिया Lasso (फ्री) जैसे प्रोग्राम का उपयोग कर सकते हैं, ताकि उनके धागे वर्चुअल CPUs को आवंटित नहीं किया जा सके।
तो .... मुझे नहीं लगता कि कोई भी वास्तव में जानता है कि विंडोज सीपीयू शेड्यूलर वर्चुअल सीपीयू को कितनी अच्छी तरह से संभालता है, लेकिन मुझे लगता है कि यह कहना सुरक्षित है कि XP इसे सबसे खराब तरीके से संभालता है, और तब से धीरे-धीरे इसमें सुधार हुआ है, लेकिन यह अभी भी सही नहीं है। वास्तव में, यह कभी भी सही नहीं हो सकता है क्योंकि ओएस को इस धीमे वर्चुअल कोर पर कौन से थ्रेड सबसे अच्छे हैं, इस बारे में कोई जानकारी नहीं है। यह समस्या हो सकती है, और माइक्रोसॉफ्ट सर्वर वातावरण में हाइपर थ्रेडिंग को अक्षम करने की सिफारिश क्यों करता है।
हाइपर थ्रेडिंग के बिना भी याद रखें, 'कोर थ्रैशिंग' का मुद्दा है। यदि आप एक कोर पर धागा रख सकते हैं, तो यह एक अच्छी बात है, क्योंकि यह मुख्य परिवर्तन दंड को कम कर देता है।
मैं सिर्फ यह टिप्पणी करना चाहता हूं कि इष्टतम नीति हमेशा अलग-अलग कोरों पर दो कार्यों को चलाने के लिए नहीं है; उदाहरण के लिए, यदि आपके पास दो कार्य हैं जो स्मृति साझा करते हैं और कई गैर-ओवरलैपिंग ऑपरेशन करते हैं, तो उन्हें एक ही कोर पर चलाना उच्च प्रदर्शन प्रदान कर सकता है क्योंकि कैश में कमी कभी-कभी प्रोसेसर को साझा करने के लिए धीमे रनटाइम को याद करती है (याद रखें, इस परिदृश्य में दोनों थ्रेड आमतौर पर एक कोर पर समानांतर में चलेंगे क्योंकि वे विभिन्न लॉजिकल इकाइयों का उपयोग कर रहे हैं)। – Borealid
बस एक एफवाईआई के रूप में: यदि आप कच्चे प्रदर्शन की तलाश में हैं, तो आप हाइपरथ्रेडिंग को अक्षम करना चाह सकते हैं। जब तक इंटेल ने अंततः इसे अच्छी तरह से काम नहीं किया है। अतीत में (आखिरी बार मापा गया था कि 2x प्रोसेसर पी 4 ज़ीऑन बॉक्स पर हाइपरथ्रेडिंग (ओएस को 4 लॉजिकल प्रोसेसर प्रदान करने) के साथ, हाइपरथ्रेडिंग सक्षम के साथ 4 कम्प्यूटेशनल गहन धागे चलाने का शुद्ध प्रदर्शन हाइपरथ्रेडिंग के साथ 2 थ्रेड चलाने से कम नेट प्रदर्शन उत्पन्न करता है अक्षम। जाहिर है, आप इसे नवीनतम हार्डवेयर के साथ स्वयं परीक्षण करना चाहते हैं - यह अब मामला नहीं हो सकता है। लेकिन, जागरूक रहें ... –
उसी कोर पर चलने वाले धागे बिल्कुल वही है जो आप चाहते हैं, कभी-कभी। यदि आप ' लॉक-फ्री डेटा संरचनाओं को फिर से चलाएं, उदाहरण के लिए; जब आपके पास अलग-अलग भौतिक कोर पर धागे होते हैं, तो कोर डेसीमैट्स प्रदर्शन के बीच कैश लाइन स्वैपिंग। –