मेरे कार्यकर्ता धागे का उपयोग कौन कर रहा है? SQL सर्वर 2014 - HADR


10

हमें हाल ही में हमारे SQL सर्वर 2014 HADR पर्यावरण पर एक समस्या थी, जहां सर्वर में से एक कार्यकर्ता थ्रेड से बाहर चला गया था।

हमें संदेश मिला:

ऑल्वेज़ऑन उपलब्धता समूहों के लिए थ्रेड पूल एक नया वर्कर थ्रेड शुरू करने में असमर्थ था क्योंकि पर्याप्त एविएबल वर्कर थ्रेड नहीं हैं।

त्रुटि संदेश जब शुरू हुआ

मैंने पहले से ही एक और प्रश्न खोला, एक बयान प्राप्त करने के लिए जिसे (मुझे लगा) मुझे समस्या का विश्लेषण करने में मदद करनी चाहिए ( क्या यह देखना संभव है कि कौन सा एसपीआईडी ​​किस अनुसूचक (कार्यकर्ता धागा) का उपयोग करता है? )। हालाँकि मेरे पास अब उन थ्रेडों को खोजने के लिए क्वेरी है जो सिस्टम का उपयोग कर रहे हैं, मुझे समझ नहीं आता है कि सर्वर थ्रेड से बाहर क्यों भाग गया।

हमारा पर्यावरण इस प्रकार है:

  • 4 विंडोज सर्वर 2012 आर 2
  • SQL सर्वर 2014 एंटरप्राइज़
  • 24 प्रोसेसर -> 832 श्रमिक सूत्र
  • 256 जीबी राम
  • 12 उपलब्धता समूह (समग्र)
  • 642 डेटाबेस (समग्र)

तो, जिस सर्वर में समस्या थी, उसमें निम्न कॉन्फ़िगरेशन था:

  • 5 उपलब्धता समूह (3 प्राथमिक / 2 माध्यमिक)
  • 325 डेटाबेस (127 प्राथमिक / 198 माध्यमिक)
  • MAXDOP = 8
  • Cost Threshold for Parallelism = 50
  • पावर प्लान "उच्च प्रदर्शन" के लिए सेट है

समस्या को "हल" करने के लिए हमने द्वितीयक सर्वर पर एक उपलब्धता समूह को मैन्युअल रूप से विफल कर दिया। उस सर्वर का विन्यास अब है:

  • 5 उपलब्धता समूह (2 प्राथमिक / 3 माध्यमिक)
  • 325 डेटाबेस (77 प्राथमिक / 248 माध्यमिक)

मैं इस कथन के साथ उपलब्ध थ्रेड्स की निगरानी कर रहा हूँ:

declare @max int
select @max = max_workers_count from sys.dm_os_sys_info

select 
    @max as 'TotalThreads',
    sum(active_Workers_count) as 'CurrentThreads',
    @max - sum(active_Workers_count) as 'AvailableThreads',
    sum(runnable_tasks_count) as 'WorkersWaitingForCpu',
    sum(work_queue_count) as 'RequestWaitingForThreads' ,
    sum(current_workers_count) as 'AssociatedWorkers'
from  
    sys.dm_os_Schedulers where status='VISIBLE ONLINE'

आम तौर पर सर्वर में लगभग 250 - 430 श्रमिक सूत्र उपलब्ध होते हैं, लेकिन जब समस्या शुरू हुई तो कोई भी श्रमिक नहीं बचा था।

-119 उपलब्ध धागे

आज, कहीं से भी, उपलब्ध श्रमिक 327 से घटकर 50 हो गए, लेकिन केवल एक मिनट के लिए और फिर लगभग 400 तक वापस चले गए।

मैंने पहले से ही अन्य प्रश्न ( HADR उच्च कार्यकर्ता धागा उपयोग ) देखा था, लेकिन यह मेरी मदद नहीं करता है।

हमारा सिस्टम बिना किसी समस्या के एक साल से अधिक समय तक स्थिर रहा। हमने डेटाबेस के वितरण में कोई भी विफलता या अन्य बड़ा बदलाव नहीं किया है।

हम प्रतिकृतियों के बीच "सिंक्रोनस कमिट" का उपयोग कर रहे हैं। मेरी समझ से इसमें कोई संपीड़न शामिल नहीं है, प्रलेखन में उपलब्धता समूह के लिए ट्यून संपीड़न देखें ।

क्या किसी को भी इस बात का अंदाजा है कि सभी वर्कर थ्रेड का उपयोग क्या कर रहे हैं?

संपादित करें: यह पृष्ठ मिला जहाँ उन मुद्दों के बारे में बहुत सी जानकारी है http://www.techdevops.com/Article.aspx?ID=24

जवाबों:


1

सामुदायिक विकि उत्तर :

आपके पास उपलब्धता समूहों में उच्च संख्या में डेटाबेस हैं, जो आपके थ्रेड जा रहे हैं। संपीड़न, एन्क्रिप्शन और परिवहन लागत में बहुत कुछ शामिल है। संपीड़न को बंद करने का प्रयास करें, यह आपके थ्रेड के उपयोग को लगभग एक तिहाई (प्रतिकृति गणना के आधार पर) से कम कर देगा।

प्रश्न SQL सर्वर 2014 को टैग किया गया है, जो डिफ़ॉल्ट उपयोग संपीड़न द्वारा होगा। SQL सर्वर 2016, डिफ़ॉल्ट रूप से, सिंक के लिए संपीड़न का उपयोग नहीं करेगा।

उदाहरण के लिए, या बेहतर: आपको वर्कर थ्रेड को बढ़ाने की आवश्यकता हो सकती है: कई सर्वरों पर सक्रिय लोगों और निष्क्रिय लोगों को संतुलित करें। संबंधित Q & A AlwaysON उपलब्धता समूह क्वेरी को बहुत धीमी गति से देखें

आप यह भी पा सकते हैं कि यह एक ऐसा अनुप्रयोग है जो अनुरोधों को ठीक से बंद करने में असमर्थ है। इसके परिणामस्वरूप बहुत सारे सत्र सो सकते हैं (जो श्रमिकों का उपभोग करते हैं)।

वास्तव में उपयोग किए जाने वाले थ्रेड्स की संख्या इस बात पर निर्भर करती है कि डेटाबेस कितने सक्रिय हैं। आपके पास 1,000 डेटाबेस हो सकते हैं और, यदि अधिकांश समय का 95% बेकार है, तो आपके पास कोई समस्या नहीं होगी। ऐसा लगता है कि आपके डेटाबेस अक्सर सक्रिय हो गए हैं और आपके थ्रेड्स को अधिक खा गए हैं। वह लंबी और छोटी है।

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