ठीक है, रुचि रखने वाले किसी के लिए,
हमने प्रत्येक दो सर्वरों में सीधे संलग्न SSD ड्राइव स्थापित करके, और DB डेटा को लॉग इन करके और उन SSD ड्राइव्स से SAN में लॉग फाइल करके, प्रश्न युगल में कुछ महीने पहले हल किया था।
यहाँ पर मैंने इस मुद्दे पर शोध करने के लिए क्या किया, इस पर एसएसडी स्थापित करने का निर्णय लेने से पहले हमने इस मुद्दे पर सभी सिफारिशों (इस सवाल से सभी सिफारिशों का उपयोग करके) का सारांश प्रस्तुत किया:
1) सभी 3 सर्वरों पर निम्नलिखित ड्राइव के लिए PerfMon काउंटर इकट्ठा करना शुरू किया:
Disk F:
सैन के आधार पर लॉजिकल डिस्क है, जिसमें एमडीएफ डेटा फाइलें हैं,
Disk I:
यह सैन के आधार पर लॉजिकल डिस्क है, जिसमें एलडीएफ लॉग फाइलें हैं,
Disk T:
जो सीधे एसएसडी से जुड़ी होती है, जो केवल अस्थायी रूप से समर्पित है।
नीचे दी गई तस्वीर 2 सप्ताह की अवधि के लिए एकत्रित औसत मूल्य है
Disk I: (LDF)
इस तरह की एक छोटी आईओ और लेटेंसी बहुत कम है, इसलिए डिस्क I: को अनदेखा किया जा सकता है
आप देख सकते हैं कि Disk T: (TempDB)
इसकी तुलना में बड़ा IO है Disk F: (MDF)
, और यह एक ही समय में बेहतर लेटेंसी है - 0 ms
स्पष्ट रूप से डिस्क एफ के साथ कुछ गलत है: जहां डेटा फाइलें निवास करती हैं, इसमें उच्च I और कम डिस्क के बावजूद डिस्क डिस्क लिखें क्यू है।
2) इस वेबसाइट से क्वेरी का उपयोग करते हुए व्यक्तिगत डेटाबेस के लिए जाँच की विलंबता
https://www.brentozar.com/blitz/slow-storage-reads-writes/
प्राथमिक सर्वर पर कुछ सक्रिय डेटाबेसों में 150-250 एमएस रीड लेटेंसी और 150-450 एमएस लेटेंसी लिखते हैं
दिलचस्प क्या है, मास्टर और एमएसडीबी डेटाबेस फ़ाइलों ने 90 एमएस तक विलंबता पढ़ी थी जो संदिग्ध है उनके डेटा के छोटे आकार और निम्न IO - एक और संकेत कुछ गलत है SAN
3) कोई विशिष्ट समय नहीं था
जिसके दौरान "SQL सर्वर में घटनाएं
हुईं ..." संदेश दिखाई दिए कि उन संदेशों को लॉग किए जाने पर कोई रखरखाव या डिस्क हेवी ईटीएल नहीं चल रहा था
4) विंडोज इवेंट व्यूअर
"SQL सर्वर में हुई घटनाओं को छोड़कर ..." समस्या को संकेत देने वाली कोई अन्य प्रविष्टि नहीं दिखाई गई थी ...
5) शीर्ष 10 प्रश्नों की जाँच शुरू
Sp_BlitzCache (cpu, पढ़ता है, आदि) से, और जहाँ संभव
नहीं है, वहाँ कोई भी सुपर IO भारी क्वेरी जो डेटा का भारी मंथन करेगी और भंडारण को भारी रूप से प्रभावित करेगी, हालाँकि
डेटाबेस में अनुक्रमण ठीक है, मैं इसे बनाए रखता हूँ
6) हमारे पास सैन टीम नहीं है
हमारे पास केवल 1 sysadmin है जो
SAN को दूषण नेटवर्क पथ पर मदद करता है - यह बहुपथित है, 3 सर्वरों में से प्रत्येक में 2 नेटवर्क केबल हैं जो स्विच करने के लिए और फिर SAN के लिए अग्रणी हैं, और इसका 1 गीगाबाइट / सेकंड होना चाहिए
7) कोई क्रिस्टलडिमार्क परिणाम नहीं थे
या जब सर्वर सेटअप किए गए थे तब से कोई अन्य बेंचमार्क टेस्ट परिणाम, इसलिए मुझे नहीं पता कि गति क्या होनी चाहिए, और इस बिंदु पर बेंचमार्क करना संभव नहीं है कि वर्तमान में गति क्या है, क्योंकि यह उत्पादन को प्रभावित करता है।
8) विचाराधीन डेटाबेस के लिए चेकपॉइंट इवेंट पर विस्तारित ईवेंट सत्र सेटअप करें
एक्सई सत्र ने यह पता लगाने में मदद की कि "एसक्यूएल सर्वर में घटनाएं हुई हैं ..." संदेश, चेकपॉइंट वास्तव में धीमा हुआ (90 सेकंड तक)
9) SQL सर्वर त्रुटि लॉग
शामिल "फ्लशचेच" "संतृप्ति" प्रविष्टियाँ,
ये तब दिखाना चाहिए जब दिए गए डेटाबेस के लिए चेकपॉइंट समय पुनर्प्राप्ति अंतराल सेटिंग्स से अधिक हो
विवरण से पता चला है कि चेकपॉइंट को फ्लश करने के लिए डेटा की मात्रा छोटी है और इसे पूरा होने में लंबा समय लग रहा है, और समग्र गति लगभग 0.25 एमबी / सेकंड है ... अजीब
10) अंत में, यह चित्र संग्रहण समस्या निवारण चार्ट दिखाता है:
ऐसा प्रतीत होता है कि हमारे पास "हार्डवेयर प्रॉब्लम: - SAN, पुराने / दोषपूर्ण ड्राइवरों, नियंत्रकों, फर्मवेयर, आदि के किसी भी गलत धारणा को ठीक करने के लिए सिस्टम एडमिन / हार्डवेयर विक्रेता के साथ काम करना है"
एक अन्य प्रश्न में "धीमी जांच चौकी ..." धीमी चौकी और 15 सेकंड I / O फ्लैश स्टोरेज पर चेतावनियों
की बहुत अच्छी सूची थी कि समस्या के निवारण के लिए हार्डवेयर और सॉफ्टवेयर स्तर पर किन वस्तुओं की जाँच की जानी है
हमारा sysadmin सूची से सभी चीजों की जांच नहीं कर सकता है, इसलिए हम बस इस मुद्दे पर कुछ हार्डवेयर फेंकना चुनते हैं - यह बिल्कुल महंगा नहीं था
संकल्प:
हमने 1 टीबी एसएसडी ड्राइव का आदेश दिया और सीधे सर्वर में स्थापित किया
चूंकि हमारे पास उपलब्धता समूह हैं, इसलिए सैकेंडरी रेप्लस पर SAN से SSD तक की DB डेटा फाइलें माइग्रेट की गईं, फिर फेल हो गईं, और पूर्व प्राथमिक पर माइग्रेट की गई फाइलें न्यूनतम कुल डाउनटाइम के लिए अनुमत हैं - 1 मिनट से कम
अब प्रत्येक सर्वर में डीबी डेटा की स्थानीय प्रतिलिपि होती है, और पूर्ण SAN / पूर्ण / लॉग बैकअप उल्लिखित SAN के लिए किया जाता है
"SQL सर्वर में घटनाएं हुई हैं ..." संदेश Windows इवेंट व्यूअर लॉग्स में, और बैकअप का प्रदर्शन, अखंडता की जाँच करता है, इंडेक्स रिबोर, क्वेरी आदि में काफी वृद्धि हुई है
IO विलंबता के संदर्भ में कितना प्रदर्शन बेहतर हुआ है क्योंकि हमने DB फाइल को SSD में स्थानांतरित कर दिया है?
प्रभाव का मूल्यांकन करने के लिए, प्रयुक्त प्रदर्शन Windows प्रदर्शन मॉनिटर लॉग से 2 सप्ताह पहले और माइग्रेशन के 4 सप्ताह बाद लॉग करता है:
नीचे डीबी स्तर की विलंबता आँकड़े तुलना (उपयोग किए जाने से पहले और बाद में SQL सर्वर की कैप्चर की गई वर्चुअल फ़ाइल आँकड़े का उपयोग किया जाता है)
सारांश
सैन से माइग्रेशन सीधे स्थानीय एसएसडी से जुड़ा हुआ था, यह अच्छी तरह से लायक
था, इसका भंडारण की विलंबता पर बहुत प्रभाव पड़ा और औसतन 90% से अधिक सुधार हुआ (विशेष रूप से राइट ऑपरेशन), और हमारे पास अब IO में 20-50 सेकंड स्पाइक्स नहीं हैं।
स्थानीय एसएसडी में जाने से न केवल भंडारण प्रदर्शन के मुद्दों का समाधान हुआ, बल्कि डेटा सुरक्षा भी थी, जिसके बारे में मैं चिंतित था (यदि SAN विफल रहता है, तो सभी 3 सर्वर एक ही समय में अपना डेटा खो देते हैं)