विशिष्ट समय में लॉग में प्रदर्शित होने वाले फ्लशचेच संदेश


22

हम हाल ही में डेटाबेस प्रदर्शन के मुद्दों का एक बहुत कुछ कर रहे हैं, और मैं यह देखने की कोशिश कर रहा हूं कि क्या मैं समझ सकता हूं कि क्यों। हमारे पास डीबीए नहीं है (मैं एक सॉफ्टवेयर डेवलपर हूं) इसलिए मैं इसे पूरा करने की कोशिश कर रहा हूं, और मुझे जो भी मिल रहा है, वह मुझे एक विदेशी भाषा की तरह लगता है।

हमें हर सुबह SQL सर्वर को फिर से शुरू किया गया है क्योंकि यह एकमात्र तरीका है जो कार्य दिवस के दौरान चालू है। मैंने देखा कि हर सुबह लगभग 5 बजे हम लॉग में हर दो मिनट में यह संदेश पाने के लिए शुरू होते हैं:

फ्लशचेच: डीबी 9: 0 के लिए 97168 एमएस (8139 नए गंदे बुफ़्स से परहेज) में 7432 के साथ 11848 बुफ़े साफ किए गए

अंतिम लक्ष्य बकाया: 4, avgWriteLatency 32

औसत थ्रूपुट: 0.72 एमबी / सेकंड, आई / ओ संतृप्ति: 11635, संदर्भ स्विच 18849

हर बार संख्या अलग-अलग होती है, लेकिन सर्वर को पुनरारंभ करने तक उस पैटर्न में यह एक ही संदेश होता है। मुझे यकीन नहीं है कि इसकी व्याख्या कैसे करनी है, मैं इसके बारे में Google को कोशिश कर रहा हूं और मैंने जो कुछ भी इकट्ठा किया है, उसका मतलब है कि I / O के साथ कुछ गलत हो सकता है और कुछ ऐसा हो रहा है जो इसे माना जाता है। हमने हाल ही में SSD का उपयोग करने के लिए स्विच किया, इसलिए मुझे नहीं लगा कि यह एक लेखन समस्या होनी चाहिए।

क्या कोई इस पर कुछ प्रकाश डाल सकता है?


जवाबों:


29

त्रुटि लॉग में FlushCache संदेश चेकपॉइंट लॉगिंग के कारण होता है, और इस मामले में एक लंबी चेकपॉइंट द्वारा (जिसे एक चेकपॉइंट के रूप में परिभाषित किया गया है जो पुनर्प्राप्ति अंतराल से अधिक समय ले रहा है)। यह लॉग किया गया है या नहीं, व्यवहार 2012 और 2012 के पूर्व में अलग है। SQL सर्वर 2012 से पहले, चेकपॉइंट लॉगिंग प्राप्त करने के लिए आपको एक ट्रेस ध्वज (T3504) चालू करना होगा। लेकिन SQL सर्वर 2012 में शुरू होता है कि एक लंबी चौकी का सामना करने पर संदेश डिफ़ॉल्ट रूप से लॉग होता है।

अब के रूप में के सवाल के लिए "यह वास्तव में बुरा है ?" , आपको वास्तव में उनके संदर्भ को देखते हुए इन नंबरों को देखना शुरू करना होगा। लगभग 93 एमबी गंदे बफ़र्स को फ्लश करने में आपको 97+ सेकंड का समय लगा। ऐसा लगता है कि यह संभावित रूप से बहुत सारे डेटा मंथन का मिश्रण हो सकता है (वास्तविक चेकपॉइंट के दौरान, लगभग 64 एमबी बफ़र्स भी गंदे थे) और संभावित भंडारण जो डेटा संशोधन और / या बाकी के साथ नहीं है। I / O कार्यभार का।

मैं आपके स्टोरेज सबसिस्टम के स्वास्थ्य का सत्यापन करूंगा , वेट को देखूंगा, और उदाहरण के लिए समग्र प्रदर्शन चित्र प्राप्त कर सकता हूं । लॉजिकल डिस्क परफ़ॉर्म काउंटर पर एक नज़र डालें और देखें कि समग्र I / O मंथन थ्रूपुट , विलंबता और IOps के साथ क्या है । यह डिस्क कैसे प्रदर्शन कर रही है, इसकी अधिक विशद तस्वीर को चित्रित करने में आपकी मदद करेगी। यदि आपके पास अपने भंडारण को बेंचमार्क करने की क्षमता है, यदि आपने इसे पहले से ही आधारभूत नहीं किया है, तो आपको यह देखना चाहिए कि प्रश्न में ये वॉल्यूम क्या सक्षम हैं ( SQLIO उस के लिए एक बड़ी उपयोगिता है) और वे अभी क्या कर रहे हैं (यह अच्छा है बेंचमार्क बेसलाइन है, जब वॉल्यूम को मौजूदा बेंचमार्क की तुलना में खड़ा किया गया था)।

इस संदेश को समझाते हुए एक बढ़िया लेख यहां दिया गया है - हाउ इट वर्क्स: एसक्यूएल सर्वर एरर लॉग में फ्लश कैश संदेश कब जोड़ा जाता है?

संपादित करें : अपने प्रश्न को फिर से पढ़ना, मुझे यह टिप्पणी याद करनी चाहिए:

मैंने देखा कि हर सुबह 5 बजे के आसपास हमें यह संदेश मिलना शुरू हो जाता है

ऊपर दिए गए मार्गदर्शन के अनुसार देखें कि इस समय आपके भंडारण पर क्या हो रहा है। यह टेक्स्टबुक शेड्यूल किए गए ऑपरेशन की तरह लगता है जो स्टोरेज पर एक टोल ले रहा है, जिससे चेकपॉइंट का प्रदर्शन प्रभावित हो रहा है और "लंबा" हो सकता है।


2
एसक्यूआईओ को दिए गए लिंक के अनुसार डिस्कपेड। Exe द्वारा सुपरक्यूट किया गया है। यहाँ लिंक करने के लिए लिंक है ।pp.exe: Gallery.technet.microsoft.com/DiskSpd-a-robust-storage-6cd2f223
टिम कोकर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.