उच्च CXPACKET और LATCH_EX प्रतीक्षा करता है


13

मैं एक डाटा प्रोसेसिंग सिस्टम के साथ कुछ परफॉर्मेंस इश्यू कर रहा हूं, जिस पर मैं काम कर रहा हूं। मैंने एक घंटे के प्रतिबाधा से प्रतीक्षा आँकड़े एकत्र किए हैं जो बड़ी मात्रा में CXPACKET और LATCH_EX प्रतीक्षा घटनाओं को दिखाते हैं।

सिस्टम में 3 प्रोसेसिंग एसक्यूएल सर्वर होते हैं जो नंबर क्रंचिंग और कैलकुलेशन का एक बहुत कुछ करते हैं और फिर डेटा को सेंट्रल क्लस्टर सर्वर में फीड करते हैं। प्रोसेसिंग सर्वर में किसी भी एक समय में 6 कार्य चल सकते हैं। ये प्रतीक्षा आँकड़े केंद्रीय क्लस्टर के लिए हैं जो मुझे लगता है कि एक अड़चन पैदा कर रहा है। केंद्रीय क्लस्टर सर्वर में 16 कोर और 64 जीबी रैम है। MAXDOP 0 पर सेट है।

मुझे लगता है कि CXPACKET कई समानांतर प्रश्नों से चल रहा है, हालांकि मुझे यकीन नहीं है कि LATCH_EX प्रतीक्षा घटना संकेत दे रही है। मैंने जो पढ़ा है, वह गैर-बफर प्रतीक्षा हो सकता है?

क्या कोई सुझाव दे सकता है कि इस प्रकार के प्रतीक्षा आँकड़े का कारण क्या होगा और इस प्रदर्शन मुद्दे के मूल कारण की जांच के लिए मुझे क्या कार्रवाई करनी चाहिए?

शीर्ष क्वेरी परिणाम कुल प्रतीक्षा आँकड़े हैं और निचला क्वेरी परिणाम 1 घंटे की अवधि के आँकड़े हैं SQL प्रतीक्षा नमूना


4
क्या आपने लैक वेट्स पर पॉल रैंडल के ब्लॉग पर एक नज़र डाली है? sqlskills.com/blogs/paul/… यह निर्धारित करने में काफी उपयोगी जानकारी है कि
लाच

सीएक्सपैकेट तब होता है जब क्वेरी का मुख्य धागा समानांतर थ्रेड्स पर लौटने की प्रतीक्षा कर रहा है। एक अच्छी व्याख्या और इसे कम करने के कुछ तरीकों के लिए ब्रेंट ओजर के ब्लॉग प्रविष्टि पर देखें विषय brentozar.com/archive/2013/08/…
रबरचेनलडर

जवाबों:


8

CXPACKET एक LATCH_XX (संभवतः PAGEIOLATCH_XX या SOS_SCHEDULER_YIELD के साथ) के साथ हो सकता है। यदि यह मामला है (और मेरा मानना ​​है कि यह सवाल पर आधारित है), तो आपके हार्डवेयर को फिट करने के लिए MAXDOP मान को कम किया जाना चाहिए।

इसके अलावा, यहां उच्च CXPACKET प्रतीक्षा आँकड़े मान (SQL सर्वर पर कुछ बदलने से पहले) के कारण का निदान करने में कुछ और अनुशंसित कदम दिए गए हैं:

  • MAXDOP को 1 पर सेट न करें, क्योंकि यह कभी समाधान नहीं है

  • क्वेरी और CXPACKET इतिहास को समझने और निर्धारित करने के लिए जांच करें कि क्या यह ऐसा कुछ है जो सिर्फ एक या दो बार हुआ है, क्योंकि यह सिस्टम में केवल अपवाद हो सकता है जो सामान्य रूप से सही ढंग से काम कर रहा है

  • क्वेरी द्वारा उपयोग किए गए तालिकाओं पर अनुक्रमित और आंकड़ों की जांच करें और सुनिश्चित करें कि वे अद्यतित हैं

  • समानांतरवाद (CTFP) के लिए लागत सीमा की जाँच करें और सुनिश्चित करें कि उपयोग किया गया मूल्य आपके सिस्टम के लिए उपयुक्त है

  • जांचें कि क्या CXPACKET एक LCK_M_XX के साथ है (आमतौर पर IO_COMPLETION और ASYNC_IO_COMPLETION के साथ)। यदि यह मामला है, तो समानांतरता अड़चन नहीं है। समस्या और समाधान का मूल कारण जानने के लिए उन प्रतीक्षा आंकड़ों का समस्या निवारण करें

अगर आपको वास्तव में CXPACKET प्रतीक्षा प्रकार को गहराई से समझने की आवश्यकता है, तो मैं SQL सर्वर लेख में CXPACKET प्रतीक्षा प्रकार के समस्या निवारण की सलाह दूंगा


7

एसक्यूएल सर्वर पर लैक्ट कंसंट्रेशन का निदान और समाधान पढ़ें , इस विषय पर सबसे व्यापक पेपर है। आपको खोदना होगा sys.dm_os_latch_statsऔर देखना होगा कि कुंडी किस प्रकार का विवाद है।

देखें कि क्या पढ़ना SQL सर्वर प्रदर्शन का विश्लेषण करने में किसी भी तरह से आपकी मदद करता है।


3

ऊपर दिए गए लिंक को पढ़ने के अलावा और सबसे अधिक संभावना है कि आपकी "मैक्स डिग्री ऑफ पैरेललिज्म" को 0 से 8 की तरह कुछ सेटिंग में बदलना, आप नीचे संकीर्ण करना चाहेंगे कि आपके कौन से प्रश्न समानांतर चल रहे हैं और उनकी लागत क्या है।

इस परिवर्तन के प्रभाव को देखने के बाद आप अपने "कॉस्ट थ्रेशोल्ड फॉर पैरेललिज्म" को ठीक करने के लिए विचार कर सकते हैं कि क्या समानांतर चलेगा।

यहां ब्रेंट ओजर का एक शानदार वीडियो है जो आपकी मदद करेगा: CXPACKET और MAXDOP की कला को माहिर करना

आपका लक्ष्य CXPACKET के लिए <= 50% प्रतिशत प्रतीक्षा समय है। शुभ लाभ!!

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