क्या शेड्यूल में सर्वर को रीबूट करना प्रदर्शन के लिए अच्छा विचार होगा?


14

मैं सोच रहा हूं कि क्या किसी शेड्यूल में सर्वर को रिबूट करना प्रदर्शन के लिए अच्छा होगा।

मान लें कि हम सर्वर को 02:00 बजे प्रति 2 रातों पर रिबूट करना चाहते हैं।

यहाँ सर्वर है Windows Server 2008 R2। मुख्य रूप से, SQL सर्वर और IIS 7.5 (लगभग 15 ऐप्स चल रहे हैं) इस सर्वर के अंतर्गत चल रहे हैं। सर्वर में 4GB मेमोरी है।


9
क्या आप वास्तव में प्रदर्शन के मुद्दे हैं? विंडोज सकते हैं रिबूट जा रहा है बिना साल के लिए जाना। यह बिना रिबूट के लंबे समय तक नहीं चलना चाहिए , केवल इसलिए कि पैच स्थापित करने की आवश्यकता है, लेकिन यह निश्चित रूप से संभव है। मेरे पास व्यक्तिगत रूप से पूरी तरह से अलग नेटवर्क में एक सर्वर है जो <चेक> 489 दिनों के लिए है। यह अभी भी ठीक काम करता है और प्रदर्शन स्वीकार्य है।
बेन पलब्रो सेप

6
मैं मानता हूं कि यह तब होता है जब सीमित मात्रा में मेमोरी या सीपीयू होता है। - आप गलत मानते हैं।
रोब मोइर

4
जो व्यक्ति इस पद के लिए वोट देता है, उसे यह बताना चाहिए कि क्यों। यह अच्छी तरह से समझाया गया प्रश्न है और इसमें कुछ भी गलत नहीं है।
तुगलक

17
सही बात यह है कि आप समस्याएँ क्यों उठा रहे हैं, इसे पुनः आरंभ नहीं करें। जिन कंप्यूटरों को नियमित रूप से रिबूट किया जाता है, उन्हें डेस्कटॉप कहा जाता है।
बार्ट सिल्वरस्ट्रिम

4
वे कम हो सकते हैं क्योंकि कुछ प्रश्न एक बुरे विचार के रूप में भी हैं; एक उदाहरण हालांकि इस समय दिमाग में नहीं आ रहा है। बहुत सारे कारण हैं। लोग अजीब हैं। हम गरीब और बुरे निर्णयों को दूर करने के लिए सामान्य सामान्य ज्ञान पर भरोसा करते हैं। इसलिए यह एक समुदाय क्यू / ए साइट है।
बार्ट सिल्वरस्ट्रिम

जवाबों:


32

हालांकि मैं इस बात से सहमत हूं कि आपकी टिप्पणी के आधार पर बॉक्स को रिबूट करने में कुछ भी गलत नहीं है, जो कि SQL सर्वर एजेंट रोक रहा है, मैं कुछ अतिरिक्त मूल कारण विश्लेषण की सलाह दूंगा। सेवाएँ आमतौर पर बस नहीं रुकती हैं, और SQL सर्वर एजेंट सेवाओं ने मेरे अनुभव में उस तरह से काम नहीं किया है, आमतौर पर।

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


2
"addt'l" ? पंक्ति 2 में पार्स त्रुटि।
टामस

@tugberk - यदि यह उत्तर है, तो इवान द्वारा सुझाए गए आपके एनाल्जेस के बाद एसक्यूएल एजेंट को रोकने का क्या कारण था?
अगस्त

@ फुलवारी: अरे वहाँ! यहाँ पर आपको देखना अच्छा है! मुझे नहीं पता कि आप कभी भी मेरा "असली नाम" जानते हैं। मैं 2003 - 2005 की समय सीमा से एक पुराना सांग फाइट परिचित हूं। गंदे सिंथ-पॉप और एक "बैंड" नाम के बारे में सोचें, जो कचरे के ढेरों के दृश्य पैदा करता है और आपको याद हो सकता है।
इवान एंडरसन

वैसे यह बहुत ही शानदार है! हाय समायोजक। ;) (बेशक यह ईमेल पर ले जाया जाना चाहिए, लेकिन मुझे आपका पता नहीं मिल सकता है।)
शराबी

38

यदि आप प्रदर्शन सुधारने के लिए कंप्यूटर को रिबूट करना चाह रहे हैं, तो इसका मतलब है कि शायद आप स्मृति प्रबंधन के मुद्दों में भाग रहे हैं।

कैशिंग अच्छा है

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

IIS मेमोरी लीक्स?

अब आपने बताया कि यह IIS 7.5 है। हालाँकि मुझे यह निराशाजनक लगता है, लेकिन IIS 7.5 पर चलने वाले कई वेब ऐप में मेमोरी लीक है कि IIS में चूक हर X मिनट में APP को पुनरारंभ करना है और यदि APP पूल बेकार है तो इसे बंद कर दें। आदर्श मेमोरी लीक को ठीक करना है - लेकिन यदि आप नहीं कर सकते हैं तो आप इन सेटिंग्स को समायोजित कर सकते हैं जिसमें मेमोरी लिमिट और टाइमर शामिल हैं। आप यह जानने के लिए परफ्यूम का उपयोग कर सकते हैं कि कौन सी w3wp प्रक्रिया मेमोरी का उपयोग कर रही है। यह थोड़ा सा दर्द है लेकिन आप इसे ऐप पूल के साथ वापस टाई कर सकते हैं %systemroot%\system32\inetsrv\APPCMD list wps

SQL मेमोरी

कैशिंग में वापस जाने पर, एसक्यूएल वह मेमोरी ले जाएगा जो वह कर सकती है। आप SQL सर्वर के लिए गुणों में इसे सीमित कर सकते हैं। यदि आप मेमोरी को सीमित नहीं करते हैं और आप बॉक्स पर IIS भी चला रहे हैं, तो ये मेमोरी मारने के प्रदर्शन के लिए लड़ाई शुरू कर सकते हैं। यह उत्कृष्ट लेख इस पर विस्तार से जाता है: ए साइसाडमिन्स गाइड टू माइक्रोसॉफ्ट एसक्यूएल मेमोरी

संतुलन

चूंकि आपके पास एक ही बॉक्स पर IIS और SQL दोनों हैं, इसलिए आपको उनके मेमोरी उपयोग को संतुलित करना होगा। यदि आप ऐसा नहीं करते हैं, तो आपको वह मेमोरी मिल सकती है, जिसका उपयोग डिस्क पर फिर से स्वैप करने की संभावना है - जो कि एक भयानक जगह है (स्वैप गतिविधि के लिए परफ़ॉर्म काउंटर होना चाहिए)। IIS रीसायकल सेटिंग्स और SQL मेमोरी सीमा का उपयोग करके, आपको इस सिस्टम को स्थिर बनाने में सक्षम होना चाहिए। इसे संतुलित करने के लिए आपको 4GB से अधिक मेमोरी की आवश्यकता हो सकती है। इसके अलावा, अगर यह एक विकल्प है, तो मैं दृढ़ता से एक समर्पित मशीन पर SQL सर्वर लगाने की सिफारिश करूंगा - यह प्रदर्शन को बहुत बेहतर बनाने वाला है और चीजों को बहुत सरल बनाता है।


अद्भुत उत्तर काइल, काश मैं इन महीनों में से एक होता जो मेरे SBS2011 के प्रदर्शन संबंधी प्रश्नों पर होता! अपने खुद के (कई महीनों के) शोध के माध्यम से आपके द्वारा उल्लिखित प्रत्येक चीज को मारा है। अभी भी मुद्दों को मार रहा है लेकिन यह एक और मामला है।
हेडनव्यू

12

मैं एक समय पर सर्वर को रिबूट करने का प्रस्तावक नहीं हूं, विशेष रूप से कुछ अंतर्निहित मुद्दे को हल करने के साधन के रूप में नहीं। यदि आपको प्रदर्शन समस्या को हल करने के लिए इस सर्वर को रिबूट करने की आवश्यकता है, तो कार्रवाई का बेहतर तरीका मुद्दे का कारण ढूंढना और इसे हल करना है। एक नियमित समय पर सर्वर को रिबूट करना केवल अंतर्निहित समस्या को रोकना है।


5

यदि आपको महत्वपूर्ण मेमोरी लीक मिली है, तो निश्चित रूप से, क्यों नहीं - अन्यथा अपडेट के साथ मासिक रीबूट करें।


पारितोषिक के लिए धन्यवाद। मैं अब कार्य प्रबंधक को देख रहा हूं और यह देखते हुए कि सिस्टम 75% मेमोरी का उपयोग करता है।
tugberk

6
यदि यह SQL सर्वर चला रहा है, तो यह अपेक्षित है। SQL सर्वर (और आपको इसे करने देना चाहिए) सभी मेमोरी का उपयोग कर सकता है।
बेन पलब्रो सेप

4
इसका मतलब यह नहीं है कि आपके पास मेमोरी लीक है। मेमोरी का उपयोग करना है। और मेमोरी लीक को ठीक करने के लिए रिबूट करना पूरी तरह से व्यावहारिक हल है, लेकिन लंबी अवधि में बेहतर समाधान यह है कि उनके कारण होने वाली गलती को ढूंढना और ठीक करना है।
रोब मोइर

1
@tugberk: जैसा कि मैंने अपने जवाब में कहा कि यह मेरा अनुभव नहीं है कि SQL सर्वर एजेंट सेवा स्मृति दबाव की स्थिति के कारण बंद हो जाती है। संभवत: ऐसी स्थितियां हैं जिनके तहत यह होगा, लेकिन मुझे उम्मीद है कि जब तक आप उस बिंदु पर पहुंचेंगे, तब तक आप अन्य सेवाओं के साथ समस्याओं को देखेंगे (क्योंकि यह संभवतः काफी गंभीर होगा)।
इवान एंडरसन

2
यदि यह स्मृति होती है तो आपको स्वैप को केवल "मरने से पहले" मारा जाना चाहिए, मुझे लगता है। मेमोरी हमेशा कैशिंग और ऐसे के लिए जितना संभव हो उतना उपयोग किया जाएगा। आपको पहले अपने डेटाबेस उपयोग का विश्लेषण करने के लिए उपकरणों का उपयोग करना चाहिए। और अगर आप 15 ऐप चला रहे हैं, और मेमोरी पर टाइट हैं (15 ऐप्स + डेटाबेस 4 टमटम में? ये चीजें कितनी बड़ी हैं?) तो आपको पहले से ही समर्पित सर्वर पर वेब सर्वर से डेटाबेस घटक को तोड़ने पर देखना चाहिए।
बार्ट सिल्वरस्ट्रिम

2

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


1

यह एक भयावह विचार नहीं है, लेकिन अगर यह सिर्फ 'वूडू' है, तो यह शायद आपकी ज्यादा मदद नहीं करेगा।

हालाँकि, आपके प्रदर्शन को बेहतर बनाने में आपकी जाँच को समाप्त न होने देने के दो कारण हैं।

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

दूसरी समस्या यह है कि मुझे संदेह है कि आपको अपने पुनरारंभ के दौरान आश्रित सेवाओं से आने वाले अनुरोधों को रोकना होगा। आपने अभी एक ऑपरेशनल ताल बनाया है। हर बार किसी न किसी दैनिक कार्य को चलाने की आवश्यकता होती है, यह आपके पुनरारंभ से जुड़ा होगा। किसी समय, आपके पास ये बड़े पैमाने पर रोलिंग पुनरारंभ होंगे जो छह घंटे लगते हैं (मैं यहां अतिशयोक्ति नहीं कर रहा हूं, मैंने इसे एक से अधिक कंपनियों में घटित होते देखा है) और किसी को भी याद नहीं होगा कि सबकुछ बंद करने और बीच में फिर से शुरू करने की आवश्यकता क्यों है रात की।

मेरी सिफारिश एसक्यूएल प्रक्रिया की निगरानी और आवश्यकतानुसार पुनः आरंभ करने की होगी। जैसा कि पहले के एक पोस्टर द्वारा बताया गया है, SQL में मेमोरी लीक लोगों को ऐसा नहीं लगता है जो यह करता है (और मैं इसे एक ऐसे व्यक्ति के रूप में कहता हूं जो 90 के दशक के मध्य में MSSQL टीम में था)। आप चाहते हैं कि आपका डेटाबेस सर्वर लगभग 100% मेमोरी और सीपीयू का उपयोग करे। कुछ भी कम संसाधनों को बर्बाद कर रहा है।


0

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

अन्यथा, इसे तब तक चलने दें जब तक आपको पैच / एप्लिकेशन / डेटा को पुनर्स्थापित करने के लिए रखरखाव विंडो की आवश्यकता न हो। प्रदर्शन इंजीनियर को सुझाव देने के लिए यह एक अच्छा समय हो सकता है कि प्रश्न के लिए सर्वर पर एक नज़र डालें कि क्यों / क्या मुद्दे इसे मजबूर कर रहे हैं।


0

जबकि प्रति पूर्ण उत्तर नहीं है , लेकिन क्या सर्वर में कुछ और रैम जोड़ना एक व्यवहार्य विकल्प है? 4GB आईआईएस / एसक्यूएल सर्वर मशीन के लिए नीचे की तरफ एक टैड है। निर्भर करता है कि यह एक वास्तविक समर्पित सर्वर इकाई है या सेवा में दबाया गया डेस्कटॉप है, तो आप इसे काफी कम लागत के लिए 8GB या उससे अधिक प्राप्त कर सकते हैं। अगर यह एक सर्वर है, तो यह मानक डेस्कटॉप रैम की तुलना में थोड़ा अधिक खर्च हो सकता है, लेकिन यह आपको मजबूर रिबूट के बीच थोड़ा और समय देगा।

यह कहते हुए कि, देखें कि क्या आप अधिकतम 80% RAM का उपयोग करने के लिए SQL सर्वर को सीमित कर सकते हैं, या लॉग को ठीक से देख सकते हैं कि क्या गलत हो रहा है और / या क्यों सेवा बंद हो रही है।


0

यदि आपके पास Windows सर्वर है, तो SQL समस्या से संबंधित नहीं हो सकता है और आप किसी भी प्रकार के पैचिंग रूटीन का पालन कर रहे हैं, आप नियमित रूप से सर्वर को रिबूट कर रहे होंगे, क्योंकि "सिर्फ इसलिए" रिबूट नहीं होगा। जब मैंने "BIG MULTINATIONAL" के लिए काम किया तो हमें मासिक रूप से पैच करना अनिवार्य था और जैसे हमारे सभी सर्वरों को मासिक आधार पर कम से कम एक बार रिबूट किया गया।


0

Im 3 सर्वर पर कर रहा है, 1 हमारा और 2 ग्राहक हैं। Ive ने इसे विभिन्न कारणों से निपटाया - एक सर्वर 2008R1 में स्थापित करने के लिए कई अपडेट लंबित हैं, लेकिन मैं उन्हें स्थापित नहीं कर सकता, इसलिए इसे हर दिन एक-एक करके स्थापित करना; एक और सर्वर 2012R2 - बूट समस्या निवारण और कुछ प्रदर्शन मुद्दों आदि के लिए, मुझे नहीं लगता कि एक आवधिक रिबूट को शेड्यूल करने के लिए एक बुरा अभ्यास है, दूसरी कड़ी से यह विभिन्न हार्डवेयर और सॉफ़्टवेयर समस्याओं को ट्रैक करने में मदद कर सकता है, खासकर जो ऑटो स्टार्ट में शामिल हैं। ।


-2

मैं एक बड़ी कंपनी को जानता हूं जो न केवल अपने विंडोज सर्वर को रात में रिबूट कर रही है, बल्कि उनमें से कुछ भी हर 24 घंटे में फिर से इंस्टॉल हो जाते हैं। उनके लिए, सॉफ्टवेयर और सुरक्षा मुद्दों में मेमोरी लीक के कारण इसकी आवश्यकता है।

लगता है कि कुछ कंपनियां हर 24 घंटे में रिबूट कर रही हैं - हालांकि यह मुझे एक लिनक्स प्रशासक के रूप में अजीब लगता है। यह स्पष्ट करने के लिए: मैं एक मेमोरी इश्यू के कारण ऐसा करने की कभी भी सिफारिश नहीं करूंगा - मुद्दे को ट्रैक करें और इसे हल करें।

यदि आपकी मेमोरी का उपयोग महीनों के लिए 75% पर स्थिर रहता है, तो संभवतः रिबूट करने की कोई आवश्यकता नहीं है - यह सर्वर एप्लिकेशन के लिए उपलब्ध सभी मेमोरी का उपयोग करने के लिए पूरी तरह से सामान्य है - यह प्रदर्शन को बहुत बढ़ा देता है क्योंकि आपको कम डिस्क-आईओ की आवश्यकता होती है यदि आप उपयोग करते हैं आपके डेटा को कैश करने के लिए RAM।


शुक्रिया @Subito खैर, मैं वास्तव में एक वेब देवता हूं (सर्वर व्यवस्थापक नहीं) लेकिन वर्तमान में मुझे एक सर्वर बनाए रखने की आवश्यकता है। इसलिए मैं यह सरल प्रश्न पूछ रहा हूं। मेरे विचार से आप सही है। लेकिन मैं हैरान हूं कि वहां कंपनियां इस तरह की चीजें कर रही हैं। क्या वे किसी भी प्रकार के सर्वर साइड कैशिंग का लाभ नहीं उठाते हैं?
tugberk

उनके सभी एप्लिकेशन DOS या 3.11 के साथ स्व-लिखित और उपयोग के लिए अभिप्रेत हैं। वे इस एप्लिकेशन से परे एक डेटाबेस प्राप्त करने में कामयाब रहे और किसी तरह उन्हें सर्वर 2008 में भेज दिया। यह एक चमत्कार है कि यह अभी भी काम कर रहा है। किसी के पास मेवे नहीं होंगे और कैश का उपयोग करने के लिए सब कुछ बदलने की कोशिश करेंगे। उनके पास कुछ लोग हैं जो वहां बैठे हैं और किसी चीज के दुर्घटनाग्रस्त होने का इंतजार कर रहे हैं और फिर एप्लिकेशन / सर्वर / जो भी हो, को पुनः आरंभ करें।
सुबितो सेप

6
हर 24 घंटे में सर्वर को रिबूट करने के लिए इसका "वैध" नहीं है। या तो वे कुछ मिल गया है बहुत अत्यंत किनारे मामले मुद्दा या अपने नेटवर्क और सर्वर पेशे में सबसे बड़ी बेवकूफ द्वारा प्रबंधित किया जा रहा है।
रॉब मोइर

हां, वे वास्तव में सबसे बड़े बेवकूफ हैं - लेकिन इसकी एकमात्र कंपनी मुझे पता नहीं है, जो अपने विंडोज़ सर्वर के साथ ऐसा कर रही है ... यह स्मृति मुद्दों से निपटने का एक बहुत ही सामान्य तरीका लगता है। - मुझे गलत मत समझो, मुझे लगता है कि इसकी भयानक, भयानक गलती है, मुद्दों की जांच और हल करने के लिए नहीं!
सबिटो सेप

7
@Subito - आपके जवाब में आप कहते हैं "हर 24 घंटे में रिबूट करने के लिए वैध लगता है" यह सिर्फ सादा बुरा सलाह है। आप ओपी को बता रहे हैं कि किसी कंपनी को संदर्भित करते समय यह एक वैध विचार है जो आप कहते हैं कि भयानक सॉफ्टवेयर के साथ बेवकूफों से भरा है। मुझे वैध नहीं लगता ।
एमडीएमरा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.