2009-09-09 13 views
13

मैंने पढ़ा है कि एक ही मशीन पर SQL सर्वर और आईआईएस स्थापित करना मूर्ख नहीं है, लेकिन मैंने इसके लिए कोई सबूत नहीं देखा है। क्या किसी ने कोशिश की है, और यदि हां, तो परिणाम क्या थे? उन्हें अलग करने के लिए किस बिंदु पर आवश्यक है? क्या कोई ट्यूनिंग आवश्यक है? मैं विशेष रूप से आईआईएस 7 और एसक्यूएल सर्वर 2008 के साथ चिंतित हूं।मैं एक ही मशीन पर आईआईएस और एसक्यूएल सर्वर कब होस्ट कर सकता हूं?

यदि कोई व्यक्ति दो मशीनों पर जाने के लिए अधिक समझ में आता है तो यह संख्या प्रदान कर सकता है, जो सबसे उपयोगी होगा।

उत्तर

47

SQL सर्वर के किसी अन्य उदाहरण सहित अन्य उत्पाद के साथ SQL सर्वर चलाने के लिए मूर्ख नहीं है। इस अनुशंसा का कारण यह है कि SQL सर्वर ओएस संसाधनों का उपयोग कैसे करता है। SQL सर्वर उपयोगकर्ता मोड मेमोरी प्रबंधन और प्रोसेसर शेड्यूलिंग इंफ्रास्ट्रक्चर पर चलाता है जिसे SQLOS कहा जाता है। एसक्यूएल सर्वर को चरम प्रदर्शन पर चलाने के लिए डिज़ाइन किया गया है और मानता है कि ओएस पर एकमात्र सर्वर है।चूंकि एसक्यूएल ओएस एसक्यूएल प्रक्रिया के लिए मशीन पर सभी रैम को सुरक्षित रखता है और प्रत्येक सीपीयू कोर के लिए शेड्यूलर बनाता है और सभी शेड्यूलर चलाने के लिए कार्यों को आवंटित करता है, जब इसे इसकी आवश्यकता होती है तो सभी सीपीयू का उपयोग कर सकते हैं। चूंकि एसक्यूएल सभी मेमोरी को सुरक्षित रखता है, अन्य प्रक्रियाओं को स्मृति की आवश्यकता होती है, जिससे एसक्यूएल memory pressure देख सकता है, और मेमोरी प्रेशर की प्रतिक्रिया बफर पूल से पृष्ठों और योजना कैश से संकलित योजनाओं को बेदखल कर देगी। और चूंकि एसक्यूएल एकमात्र सर्वर है जो वास्तव में memory notification एपीआई का लाभ उठाता है (अफवाहें हैं कि अगला एक्सचेंज भी होगा), एसक्यूएल एकमात्र प्रक्रिया है जो वास्तव में अन्य प्रक्रियाओं (जैसे लीकी बग्गी एएसपी पूल) को कमरे देने के लिए कम हो जाती है। बीओएल में यह व्यवहार भी समझाया गया है: Dynamic Memory Management

सीपीयू शेड्यूलिंग के साथ एक समान पैटर्न होता है जहां अन्य प्रक्रियाएं SQL शेड्यूलर से CPU समय चुराती हैं। उच्च अंत सिस्टम और ओपर्टन मशीनों पर चीजें बदतर हो जाती हैं क्योंकि एसक्यूएल NUMA इलाके का पूर्ण लाभ के लिए उपयोग करता है, लेकिन अन्य प्रक्रियाओं को आमतौर पर NUMA के बारे में पता नहीं होता है, और जितना ओएस आवंटन के इलाके को संरक्षित करने का प्रयास कर सकता है, वे सभी आवंटित करते हैं भौतिक रैम पर और सिस्टम के समग्र थ्रूपुट को कम करें क्योंकि सीपीयू क्रॉस-नोमा सीमा पृष्ठ पहुंच के इंतजार पर निष्क्रिय हैं। सीपीयू चक्र लेने वाली अन्य प्रक्रियाओं के कारण TLB और एल 2 मिस ​​वृद्धि जैसी अन्य बातों पर भी विचार करना है।

तो समेकित करने के लिए, आप SQL सर्वर के साथ अन्य सर्वर चला सकते हैं, लेकिन इसकी अनुशंसा नहीं की जाती है। यदि आप होना चाहिए, तो सुनिश्चित करें कि आप दो सर्वर को अपनी सर्वोत्तम क्षमता में अलग कर दें। दोनों के लिए सीपीयू एफ़िनिटी मास्क का उपयोग करें एसक्यूएल और आईआईएस/एएसपी अलग कोर पर दो अलग करने के लिए, कम रैम आरक्षित करने के लिए एसक्यूएल कॉन्फ़िगर करें ताकि यह आईआईएस/एएसपी के लिए मुफ्त मेमोरी छोड़ दे, एप्लिकेशन पूल विकास को रोकने के लिए आक्रामक रूप से रीसायकल करने के लिए अपने ऐप पूल कॉन्फ़िगर करें ।

+0

@Remus Rusanu - आपके जवाब सहित कई आपके जैसे हैं। अच्छी तकनीकी जानकारी! :) मुझे लगता है कि उत्तर अक्सर स्थिति पर निर्भर करता है। सादगी, लागत और हमारे परिस्थितियों में संसाधनों के कारण हमने एकल सर्वर तकनीक का इस्तेमाल अलग-अलग करने की आवश्यकता नहीं थी। जब उन आवश्यकताएं बदल गईं तो हमने बदल दिया लेकिन ऐसा होने में लगभग 8 साल लग गए। मुझे लगता है कि कई छोटी से मध्यम दुकानों को खुद को एक ही स्थिति में मिल सकता है। विचार? – klabranche

+0

@klabranche: मैंने प्रदान की गई तकनीकी जानकारी को मिश्रित सर्वर को कॉन्फ़िगर करने में मदद करनी चाहिए ताकि स्मृति, I/O और CPU को SQL और IIS/ASP के बीच जितना संभव हो सके विभाजन किया जा सके। लंबी अवधि में: आईआईएस/एएसपी आसानी से स्केल कर सकता है, जबकि एसक्यूएल आसानी से स्केल कर सकता है। इसलिए प्राकृतिक प्रवृत्ति आईआईएस/एएसपी को सस्ते कॉमोडिटी हार्डवेयर के खेतों या 'बगीचों' पर ले जाना है, जबकि एसक्यूएल ऑर्ग के सबसे बड़े मशीन पर अकेले रहता है। –

+0

@Remus Rusanu - मैं सहमत हूं। क्या आप सहमत होंगे कि छोटे/मध्यम आकार की दुकानों/ऐप्स के लिए जो एकल सर्वर स्थितियों को जाने का एक बुरा तरीका नहीं है? – klabranche

4

यह संभव है, हाँ।

उत्पादन वातावरण के लिए एक अच्छा विचार, नहीं।

जिस समस्या को आप चलाने जा रहे हैं वह यह है कि पर्याप्त लोड के तहत एक SQL सर्वर डेटाबेस, संभावित डिस्क से अधिक है, भारी डिस्क I/O करने जा रहा है और इसमें बड़ी मेमोरी पदचिह्न है। वह संयोजन मशीन को बांधने जा रहा है, और आप आईआईएस में एक प्रदर्शन हिट देखने जा रहे हैं क्योंकि यह पृष्ठों की सेवा करने की कोशिश करता है।

6

हां, यह संभव है और कई लोग इसे करते हैं।

यह सुरक्षा और/या प्रदर्शन का सवाल है।
सुरक्षा पर सवाल उठाया गया है क्योंकि आपके पास एक बॉक्स पर आपकी आक्रमण सतह बढ़ी है। शायद आपके लिए कोई मुद्दा नहीं है।

प्रदर्शन पर सवाल उठाया गया है क्योंकि अब आपका सर्वर वेब और डीबी अनुरोधों की सेवा कर रहा है। फिर, शायद आपके मामले में कोई मुद्दा नहीं है।

बनाम उत्पादन टेस्ट ....

कई परीक्षण वातावरण में ठीक लग रहा है, लेकिन उत्पादन नहीं हो सकता है ....

फिर, अपनी टीम की कॉल। मुझे लगता है कि यदि संभव हो तो मेरे परीक्षण और उत्पादन वातावरण जितना संभव हो सके उतना ही संभव है लेकिन यह मेरी वरीयता है।

+0

मेरा मानना ​​है कि हंसेलमिंट्स एपिसोड 134 और/या 135 ने खुलासा किया कि एसओ एक सर्वर पर चल रहा था। निश्चित रूप से करने योग्य, हालांकि स्कॉट विचार के साथ थोड़ा डरावना था। :) – klabranche

4

कुछ संदर्भों में यह मूर्खतापूर्ण है ... दूसरों में पूरी तरह बुद्धिमान।

यदि आपकी मशीन कमजोर है और भारी भार का अनुभव नहीं होगा, तो उसी मशीन पर डेटाबेस स्थापित करने का एक फायदा है, क्योंकि आपको बस नेटवर्क पर कुछ भी स्थानांतरित करने की आवश्यकता नहीं है।

दूसरी तरफ, यदि आईआईएस या डेटाबेस का एक या दोनों भारी भार के तहत होगा, तो वे हस्तक्षेप करना शुरू कर देंगे, और प्रत्येक के लिए समर्पित हार्डवेयर का प्रदर्शन लाभ शायद अधिक होने के नुकसान को दूर करेगा जाल।

2

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

4

रखरखाव समस्या को न भूलें ... आप दूसरे को निचोड़ने के बिना रीबूट/पैच नहीं कर सकते हैं। यदि वे दो बॉक्स पर हैं, तो आप अपने उपयोगकर्ताओं को एसक्यूएल बॉक्स बनाए रखने के लिए वेबसर्वर से कोई प्रतिक्रिया नहीं होने के बजाय बेहतर अनुभव दे सकते हैं।

सूची में सबसे अधिक नहीं है, लेकिन ध्यान दिया जाना चाहिए।

संबंधित मुद्दे