2009-09-05 14 views
5

मैं वर्तमान में कुछ अजाक्स भारी कोड पर काम कर रहा हूं और मैं सोच रहा हूं कि मेरा सर्वर कैसे स्केल करेगा क्योंकि अधिक से अधिक उपयोगकर्ता (उम्मीद है) मेरे वेब ऐप का उपयोग करना शुरू कर देंगे। यह इस पल के लिए केवल मेरे आंतरिक परीक्षण सर्वर पर है और मैं सोच रहा था कि मैं कुछ सौ या हजार उपयोगकर्ताओं को सिमुलेट करने के बारे में कैसे जाऊंगा ताकि मैं देख सकूं कि यह भारी भार कैसे संभाला जाता है। यह PHP/MySQL में लिखा गया है और मैं वास्तव में मैन्युअल रूप से सेट अप और परीक्षण करने के लिए सैकड़ों कंप्यूटर नहीं ढूंढना चाहता था :) अग्रिम धन्यवाद, किसी भी सलाह या दिशा की बहुत सराहना की जाती है।परीक्षण कोड कैसे स्केल

उत्तर

11

अपाचे बेंचमार्क। यह अपाचे वेब सर्वर के साथ जहाज। इस तरह थोड़े काम करता है: के लिए 10 समवर्ती धागे का उपयोग कर 100 अनुरोधों, इस आदेश का उपयोग करें:

ab -n 100 -c 10 http://localhost/ 

एक यूआरएल है कि आपके AJAX कोड बुला लिया जाएगा साथ स्थानीय होस्ट यूआरएल बदलें। आउटपुट आपको एक अच्छी रिपोर्ट देगा कि अनुरोधों को कैसे संसाधित किया गया था। दिलचस्प संख्या से कुछ हैं:

Complete requests 
Failed requests 
Requests per second 
+0

की सिफारिश 'ab' के रूप में उसी तरह से, वहाँ त्सांग है - http://tsung.erlang-projects.org/ मैं का उपयोग किया गया है और यह एक शानदार उपकरण है। – inerte

0

मैंने क्या किया है, जो एक बहुत ही किसी न किसी विचार दे देंगे, एक अनुप्रयोग जो दसियों या धागे के सैकड़ों बना सकते हैं लिखने के लिए है, और बेतरतीब ढंग से बार प्रत्येक के सर्वर दर्जनों मारा अद्वितीय उपयोगकर्ताओं के साथ।

तो, मेरे पास 100 अद्वितीय परीक्षण उपयोगकर्ता थे, और मैं 100 धागे बनाएगा और यादृच्छिक अंतराल पर कुछ संचालन करना याद रखूंगा।

यह बताएगा कि क्या आपको कुछ पैमाने की समस्याएं हैं।

आखिरकार, आपको एक समस्या होगी, क्योंकि आपके पास केवल एक नेटवर्क कनेक्शन है, जिससे गति कुछ कम हो जाएगी, इसलिए यह सही नहीं है।

आप इस सहायता के लिए junitperf का भी उपयोग कर सकते हैं, क्योंकि आप यह देख सकते हैं कि प्रत्येक परीक्षण में जवाब देने में बहुत लंबा समय लगता है या नहीं।

सबसे अच्छा शर्त यह है कि इन परीक्षणों को लेना, उन्हें जितनी मशीनें आप कर सकते हैं उन्हें रख दें, और एक बार में उन्हें चलाने के लिए 10 कंप्यूटर होने के लिए 10 या 100 लोग एक कंप्यूटर नाटक करने से अधिक प्रभावी हैं इन लोगों में से प्रत्येक होने के लिए।

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

0

इस समस्या को देखते हुए, मैं एक उपयोगकर्ता सत्र लॉग करूंगा। फिर क्लाइंट कोड लिखें जो कॉल के उस सेट को पुन: उत्पन्न करता है।

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

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