यहाँ बहुत कुछ चल रहा है, और इसमें से अधिकांश बहुत व्यापक और अस्पष्ट है।
2008R2 RTM 21 अप्रैल, 2010 को सामने आया। यह पूरी तरह से समर्थन से बाहर है। आप नवीनतम सर्विस पैक पर प्राथमिकता प्राप्त करना चाहते हैं, जो लगभग 3 साल पहले दिन के लिए निकला था। यदि आप एक अजीब बग या कुछ मार रहे हैं तो इस तरह से आपको कवर किया जाएगा। पर प्रमुख यहाँ पर यह पता लगाने की क्या आप डाउनलोड करने की जरूरत है।
चूँकि आपने vCPUs (1 से 4 तक) जोड़े हैं और किसी भी सेटिंग को नहीं बदला है, अब आपके प्रश्न समानांतर जा सकते हैं। मुझे पता है कि यह लगता है कि वे सब तेज़ हो जाएंगे, लेकिन रुको!
आपने RAM को जोड़ा हो सकता है, लेकिन आपने Max Server Memory को नहीं बदला होगा, ताकि आपका सर्वर इसका लाभ उठा सके।
पता लगाएँ कि आपका सर्वर किस पर इंतज़ार कर रहा है। मैं जिस ओपन सोर्स प्रोजेक्ट पर काम करता हूं, वह आपके एसक्यूएल सर्वर को मापने में मदद करने के लिए मुफ्त स्क्रिप्ट प्रदान करता है। पर सिर यहाँ पर अगर तुम उन्हें आजमाइए चाहता हूँ।
आप अपने सर्वर के प्रतीक्षा आँकड़े देखने के लिए sp_BlitzFirst हड़पना चाहते हैं। आप इसे कुछ तरीके से चला सकते हैं।
यह आपको दिखाएगा कि आपका सर्वर क्या शुरू होने के बाद से इंतजार कर रहा है।
EXEC dbo.sp_BlitzFirst @SinceStartup = 1;
यह आपको दिखाएगा कि 30 सेकंड की विंडो के दौरान अब कौन से प्रश्नों की प्रतीक्षा की जा रही है।
EXEC dbo.sp_BlitzFirst @Seconds = 30, @ExpertMode = 1;
एक बार जब आप यह पता लगा लेते हैं कि किस प्रश्न पर प्रतीक्षा की जा रही है (वहां प्रतीक्षा आंकड़ों के बारे में लिखा गया एक टन सामान है), तो आप नियंत्रण के साथ चीजों को प्राप्त करने के लिए बदलाव करना शुरू कर सकते हैं।
यदि आप उन्हें प्रतीक्षा करते हुए देखते हैं CXPACKET
, तो इसका मतलब है कि आपके प्रश्न समानांतर चल रहे हैं, और शायद एक दूसरे पर रौंद रहे हैं। यदि आप इसे मारते हैं, तो आप शायद 50 तक के समानांतरवाद के लिए लागत थ्रेसहोल्ड पर विचार करना चाहते हैं, और शायद MAXDOP को 2 तक नीचे गिरा सकते हैं।
इस चरण के बाद जब आप क्वेरी योजनाओं पर कब्जा शुरू करने के लिए sp_WhoIsActive या sp_BlitzWho (बाद वाला पहले से GitHub रेपो में है) जैसे कुछ का उपयोग करना चाहते हैं । प्रतीक्षा आंकड़ों के अलावा, वे सबसे महत्वपूर्ण चीजों में से एक हैं जिसे आप देख सकते हैं कि क्या गलत हो रहा है।
आप SQL सर्वर के संबंध में जाँच करने के लिए VMWare काउंटरों के बारे में जोनाथन केहियास के इस लेख को भी देखना चाह सकते हैं ।
अद्यतन करें
प्रतीक्षा आँकड़े और लड़के की समीक्षा करना वे अजीब हैं। वहाँ निश्चित रूप से CPUs के साथ कुछ है। आपका सर्वर ज्यादातर ऊब के आसपास बैठा रहता है, लेकिन जब चीजें गर्म होती हैं, तो चीजें खराब हो जाती हैं। मैं इसे आसानी से तोड़ने की कोशिश करूंगा।
आप एक जहर इंतजार नामक मार रहे हैं THREADPOOL
। आपके पास इसका एक टन भी नहीं है, लेकिन इससे समझ में आता है क्योंकि आपका सर्वर बहुत सक्रिय नहीं है। मैं समझाता हूँ कि एक मिनट में क्यों।
आप पर बहुत लंबा औसत प्रतीक्षा करता है SOS_SCHEDULER_YIELD
और CXPACKET
। आप वीएम पर हैं, इसलिए आप यह सुनिश्चित करना चाहते हैं कि एसक्यूएल सर्वर में आरक्षण है, या यह कि बॉक्स बहुत बुरी तरह से बंद नहीं है। एक शोर पड़ोसी वास्तव में यहाँ आपका दिन बर्बाद कर सकता है। आप यह भी सुनिश्चित करना चाहते हैं कि सर्वर / VM अतिथि / VM होस्ट संतुलित शक्ति मोड में नहीं चल रहे हैं। यह आपके CPU को अनावश्यक रूप से कम गति के लिए स्पिन करता है, और वे तुरंत पूरी गति तक स्पिन नहीं करते हैं।
वे कैसे टाई करते हैं? 4 सीपीयू के साथ आपके पास 512 कार्यकर्ता धागे हैं। ध्यान रखें, आपके पास एक ही सीपीयू के साथ एक ही राशि थी , लेकिन अब जब आपके प्रश्न समानांतर हो सकते हैं, तो वे कई और कार्यकर्ता थ्रेड्स का उपभोग कर सकते हैं। आपके मामले में एक समानांतर क्वेरी की समानांतर शाखा प्रति 4 धागे।
क्या समानांतर चल रहा है? सबसे अधिक संभावना है सब कुछ। समानांतरवाद के लिए डिफ़ॉल्ट लागत सीमा 5 है। यह संख्या 90 के दशक के उत्तरार्ध में डिफ़ॉल्ट रूप से बनाई गई थी जो एक डेस्कटॉप पर काम कर रहा था जो इस तरह दिखता था ।
दी, आपका हार्डवेयर अधिकांश लैपटॉप से छोटा है, लेकिन आप अभी भी उस चीज़ से थोड़ा आगे हैं।
जब बहुत सारे समानांतर प्रश्न मिलते हैं, तो आप उन कार्यकर्ता थ्रेड से बाहर निकल रहे हैं। जब ऐसा होता है, तो थ्रेड्स के जाने के इंतजार में सवाल खड़े हो जाते हैं। वह भी जहां SOS_SCHEDULER_YIELD
आता है। क्वेरीज़ सीपीयू से आगे बढ़ रही हैं और लंबे समय तक वापस नहीं मिल रही हैं। मुझे कोई अवरुद्ध प्रतीक्षा नहीं दिख रही है, इसलिए आप सबसे अधिक संभावना है कि सभी इंट्रा-क्वेरी समानतावाद प्रतीक्षा कर रहे हैं।
तुम क्या कर सकते हो?
- सुनिश्चित करें कि कुछ भी बैलेंस्ड पावर मोड में नहीं है
- MAXDOP को 2 में बदलें
- समानता के लिए लागत सीमा को 50 में बदलें
- VM के स्वास्थ्य को मान्य करने के लिए ऊपर दिए गए जॉन के। लेख का अनुसरण करें
sp_BlitzIndex
किसी भी अनुपलब्ध अनुक्रमणिका अनुरोध को देखने के लिए कॉल की गई स्क्रिप्ट का उपयोग करें ।
अधिक गहन समस्या निवारण के लिए, Google द्वारा क्लाउड में हार्डवेयर आकार देने के लिए मेरे द्वारा लिखे गए श्वेतपत्र की जांच करें ।
उम्मीद है की यह मदद करेगा!