2008-09-22 8 views
16

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

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

उत्तर

1

स्पाइक (या पीक) प्रदर्शन को तैयार या संभालने के लिए, मैं पहले यह निर्धारित करता हूं कि आप jmeter जैसे कुछ सरल प्रदर्शन परीक्षण के माध्यम से तैयार हैं या नहीं।

सेटअप करना और शुरू करना आसान है और आपको प्रारंभिक मीट्रिक देगा जो आप अपेक्षित पीक लोड को संभालेंगे या नहीं।

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

चीजें शांत होने पर software engineering radio on the design of the new Guardian website पर उच्च स्केलेबिलिटी पर एक उत्कृष्ट पॉडकास्ट है। लांच पर

सौभाग्य

9

उपाय पहले, फिर अनुकूलित। क्या आपने कोई लोडस्टेस्टिंग किया है? बाधा कहां हैं?

एक बार जब आप अपनी बाधाओं को जानते हैं तो आप समझदारी से निर्णय ले सकते हैं कि आपको अतिरिक्त डीबी बॉक्स या वेब बॉक्स की आवश्यकता है, अभी आप अनुमान लगाएंगे।

इसके अलावा, आपके लोड किए जाने वाले परिणाम आपके अपेक्षित ट्रैफ़िक के विरुद्ध तुलना कैसे करते हैं? क्या आप अनुमानित यातायात 2x संभाल सकते हैं? 5x? आप & अतिरिक्त हार्डवेयर को कितना आसान/तेज़ प्राप्त कर सकते हैं? मुझे यकीन है कि लॉन्च के दौरान व्यवसाय की आवश्यकता असफल नहीं होनी चाहिए, इसलिए सुनिश्चित करें कि आपके पास बहुत उपलब्ध क्षमता है, तो आप इसे बाद में रिलीज़ कर सकते हैं जब लोड स्थिर हो गया है और आपको पता है कि आपको क्या चाहिए।

1

मैं चाहते, व्यक्तिगत रूप से, कुछ बातें

1) लोड संतुलन/डेटाबेस प्रतिकृति प्रणाली के कुछ प्रकार में डाल कर

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

उदाहरण के लिए में

2) कोड के लिए यह अच्छा है अपने खोज करता है, तो - अमेज़न E3 का प्रयोग करें अक्षम है - जब लोड एक निश्चित स्तर पर जाता है तो इसे बंद कर दें।"क्षमा करें, हम व्यस्त हैं,"

3) लोड परीक्षण ... अपने सर्वरों का परीक्षण करने के लिए ApacheBench जैसे कुछ का उपयोग करें।

4) व्यक्तिगत रूप से, मुझे लगता है कि "Keep-Alive" कनेक्शन स्विच करना बेहतर है। यह समग्र प्रदर्शन को थोड़ा कम कर सकता है, लेकिन इसका मतलब यह है कि साइट कुछ लोगों के लिए अच्छी तरह से काम करती है, और दूसरों को टाइमआउट मिलते हैं, हर किसी को असंगत सेवा मिलती है, अगर यह उस स्तर पर पहुंच जाती है

लिनक्स प्रारूप "स्लैशडॉटिंग कैसे बचें" पर एक अच्छा लेख ... जिसे मैंने अतीत में उपयोगी पाया है। यह available online as a PDF

3

मैं कम से कम सभी स्थिर सामग्री को कारक बनाउंगा। किसी अन्य vhost को कहीं और सेट करें और उस पर सभी ग्राफिक्स/सीएसएस/जेएस लोड करें। आप उस प्रकार की सामग्री की सेवा करने के लिए कुछ अतिरिक्त चक्र ऑफ़लोड कर सकते हैं। यदि आप वास्तव में चिंतित हैं तो आप साइन अप कर सकते हैं और एक सामग्री वितरण सेवा का उपयोग कर सकते हैं। अकामाई और काफी सस्ते के समान अब बहुत सारे हैं।

एक और विचार एक विशिष्ट समय के लिए जेनरेट पृष्ठ आउटपुट रखने के लिए अपाचे mod_proxy का उपयोग करना हो सकता है। एपीसी भी काफी उपयोगी होगा .. आप आउटपुट बफरिंग कैप्चर + पृष्ठ पर संबंधित डेटा के अंतिम संशोधित समय को नियोजित कर सकते हैं, और एपीसी कैश संस्करण का उपयोग कर सकते हैं। यदि पृष्ठ अब मान्य नहीं है, तो आप फिर से एपीसी में पुन: उत्पन्न और स्टोर करते हैं।

शुभकामनाएं, यह एक सीखने का अनुभव होगा!

2

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

आप या तो निजी बीटा में स्पष्ट रूप से उपयोगकर्ताओं की संख्या को नियंत्रित कर सकते हैं, या Google- शैली अर्ध-सार्वजनिक बीटा जहां प्रत्येक उपयोगकर्ता के पास कई रेफ़रल हैं जो वे अपने दोस्तों को दे सकते हैं।

0

Varnish का उपयोग करने में देखें - यह एक कैशिंग रिवर्स प्रॉक्सी सर्वर (जैसे स्क्विड, लेकिन अधिक एकल उद्देश्य) है। मैंने इसके पीछे कुछ सुंदर साइटें चलाईं हैं, यह वास्तव में अच्छी तरह से काम करना प्रतीत होता है।

1

उच्च ट्रैफ़िक के लिए अपनी साइट को कड़ी मेहनत करने के लिए मूलभूत चरण।

1) अपनी साइट लोड करने के लिए https://browsermob.com/ जैसे कम लागत वाली टूल का उपयोग करें। कम से कम आपको प्रति घंटे 100 के अद्वितीय आगंतुकों को देखना चाहिए। यदि आपको एमएसएन होम पेज का विज्ञापन मिल जाता है, तो प्रति घंटे 500 के यूनिक्स को संभालने में सक्षम होने के लिए देखें।

2) सभी स्थिर ग्राफिक/वीडियो सामग्री को सीडीएन में ले जाएं। एजगेकास्ट और अमेज़ॅन दो उत्कृष्ट विकल्प हैं।

3) किसी भी धीमी प्रदर्शन करने वाले प्रश्नों का विश्लेषण करने के लिए अपने MySQL सर्वर को प्रोफ़ाइल करने के लिए जेट प्रोफाइलर का उपयोग करें। मामूली परिवर्तनों में भारी लाभ हो सकते हैं।

+1

महंगी सीडीएन पर जगह खरीदने से पहले पहले उपाय करें। आपको इसकी आवश्यकता हो सकती है या नहीं भी हो सकती है, भले ही आपको यह मिल जाए, आप इसे गलत इस्तेमाल कर रहे हैं। उपाय! –

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