2009-12-18 8 views
9

(संपादित करें: फिर से लिखा यह स्पष्ट करने के सवाल है, जिसका अर्थ नहीं बदला है)प्रत्येक सीपीयू या प्रति मेमोरी के एएसपी.NET सत्रों की एक सामान्य औसत संख्या क्या है?

आप एक आवेदन पत्र बना सकते हैं और इसके उपयोग माप सकते हैं। लेकिन मैं क्या जानना चाहता हूं, अगर आप एएसपी.NET एप्लिकेशन के बारे में ऊपर-सामने तय करते हैं, तो एक साथ आमतौर पर एक साथ उपयोगकर्ता कितने उपयोगकर्ता (सत्र) फिट होते हैं।

आइए निम्नलिखित डिफ़ॉल्ट सरलीकृत सेटअप मान लें: इनप्रोक सत्र, एएसपी.नेट 3.5, एनएचबर्ननेट + एल 2 कैशिंग, शॉपिंग साइट (सत्र में टोकरी गुण)।

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

बाउंटी के लिए: बैंडविड्थ आवश्यकताओं को अनदेखा करते हुए, प्रत्येक एक्स एक साथ उपयोगकर्ताओं के लिए आप कौन सी सीपीयू/मेम सलाह देंगे। अर्थात। और जवाब हो सकता है: 1GB मेम, Win2k8, आप सुरक्षित रूप से 500 एक साथ सत्र, सेवा कर सकते हैं के साथ एक 2GHz जिऑन पर लेकिन यह है कि इसके बाद के संस्करण में यह सावधान योजना या एक से अधिक हार्डवेयर फिर से की आवश्यकता है

+3

प्रबंधन द्वारा पूछे जाने के लिए यह मेरा सबसे पसंदीदा प्रश्न है। जवाब देना बेहद मुश्किल है, यहां तक ​​कि अज्ञात भी, क्योंकि आवेदन के सामान्य उपयोग पर इतना निर्भर करता है, जिसे कभी-कभी पहले से नहीं जाना जाता है। और भ्रमित करने वाला यह है कि प्रबंधन अक्सर "अनुरोध समय प्रति इकाई" के बजाय "एक साथ सत्र" के संदर्भ में वॉल्यूम देखता है, जो एक और अधिक जानकार माप है। मुझे आशा है कि किसी के पास अंगूठे के कुछ अच्छे नियम हैं। – Jacob

उत्तर

7

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

चूंकि हम ऊपरी बाउंड की तलाश में थे, इसलिए हमने एक बहुत ही सरल पृष्ठ का उपयोग किया। एसएसएल + कुछ सत्र चर। एक दोहरी ज़ीऑन क्वाड कोर (8 कोर कुल) पर, 16 जीबी मेमोरी और बैकएंड के रूप में एसक्यूएल एक्सप्रेस के साथ, हम ~ 1,000 "समवर्ती" कनेक्शन हिट करने में सक्षम थे। हालांकि स्मृति या SQL एक्सप्रेस सीमित कारक थे, हालांकि यह मुख्य रूप से हमारे परीक्षण के लिए प्रोसेसर & I/O था। ध्यान दें कि हमने कैशिंग का उपयोग नहीं किया है, हालांकि एक शॉपिंग कार्ट के लिए मुझे संदेह है कि आप या तो करेंगे। इस पृष्ठ ने डेटाबेस को 3 बार मारा, और ~ 150 केबी डेटा भेजा (ज्यादातर पीएनजी छवियां, बिना छेड़छाड़)। हमने सत्यापित किया कि 1,000 सत्र बनाए गए थे, हालांकि प्रत्येक छोटा था।

हमारा पीओवी यह है कि 1,000 संभवतः अवास्तविक है। व्यापार तर्क और वास्तविक उपयोगकर्ता डेटा वाले पृष्ठों सहित टेस्ट में ~ 200 समवर्ती उपयोगकर्ता अधिकतम दिखाए गए हैं। हालांकि, कुछ उपयोगकर्ता भी रिपोर्ट चला रहे होंगे, जो 30 सेकंड तक पूरे कोर को चबा सकता है। इस परिदृश्य में, 9 समवर्ती रिपोर्ट उपयोगकर्ता मूल रूप से सिस्टम को दूसरों के लिए अनुपयुक्त बना सकते हैं। यह अन्य पोस्टर के बिंदुओं के लिए है ... आप जो भी चाहते हैं, उसके अलावा आप अन्य प्रदर्शन #s को पकड़ सकते हैं, लेकिन यह हो रहा है कि आपका सिस्टम पूरी तरह से अलग तरीके से व्यवहार कर सकता है।

+0

आपके विस्तृत उत्तर के लिए धन्यवाद। यह वास्तव में बहुत उपयोगी है और मुझे "अंगूठे के नियम" आंकड़े के करीब लाता है, भले ही कोई यह तर्क दे सके कि यह केवल आपकी स्थिति के लिए बहुत विशिष्ट है (लेकिन यह वही है जो यह हमेशा होगा, और हम केवल अनुकूल हैं)। मुझे यह तय करने में कुछ परेशानी है कि मुझे आपको बक्षीस या अमीर डीन देना चाहिए या नहीं। जबकि मैं दोनों बहुत उपयोगी मानता हूं, आपका वास्तविक प्रश्न, ergo का जवाब देने के लिए निकटतम है, मैं आपका चयन करता हूं। – Abel

7

आप कोड की "गुणवत्ता" जानते हो ?

बुरा कोड

कुछ साल पहले हार्डवेयर में भारी खर्च कर सकता है, जबकि अच्छा कोड कुछ भी नहीं टिप्पणी के आधार पर खर्च कर सकता है

अद्यतन, मैं एक क्षुधा बुरी तरह से किया बनाए रखने के लिए किया था, यह 500 उपयोग कर रहा था मेग्स राम (कभी-कभी 1.5 गीगा) और सामान दिखाने के लिए मिनट ले रहा था, मुझे पूरी चीज को फिर से लिखना पड़ा और उसके बाद, यह केवल आवश्यक मात्रा में स्मृति ले रहा था (10-15x कम के करीब) और यह सामान दिखाने में तेज़ था , मैं यहां मिलीसेकंड में बात कर रहा हूं।

गलत किया गया स्मृति में लूप और बुरी तरह से कैशिंग डेटा की संख्या ... देखने के लिए अविश्वसनीय रूप से दुखी था। बस आपको बताने के लिए, मेरे पास मेमोरी में पूरे फ्रेकिंग डेटाबेस के 3 संस्करण थे (इसलिए वास्तविक डीबी के साथ 4) और कोड को सभी संस्करणों को एक दूसरे के बाद अपडेट करना पड़ा। ऐप्स में बाकी सब कुछ स्मृति में संस्करणों पर आधारित था।

वैसे भी, अंत में। मैंने कोड की 25 हजार लाइनों को हटा दिया। कोड की

गुणवत्ता महत्वपूर्ण है।

दूसरा अद्यतन

found this, might be good

तीसरे अद्यतन

एक आवेदन है कि मैं वर्तमान में विकसित कर रहा हूँ में, asp.net 3.5 LINQ का उपयोग कर एसक्यूएल के साथ (बेशक) बात कर SQL के सर्वर 2005. कई डीबी को पढ़ते हैं और इतने सारे लिखते नहीं हैं।

मेरी अपनी देव मशीन पर पुरानी पी 4 प्रीकॉट है जिसमें 3 गीगा रैम है।यह एक पूरे पृष्ठ लोड करने के लिए 100ms के लिए 20ms के एक औसत ले, मेरे के लिए यकीन है कि

20k के तहत निर्भर :-)

सत्र (स्मृति के उपयोग) जो पेज बहुत कम है, जिस तरह से करता है, तो मैं यहाँ से जाना है, खराब गणित होगा;

यदि मेरे पास 100 एक साथ उपयोगकर्ता हैं, तो इसमें पृष्ठ लोड करने में लगभग 2secs लगेंगे और यह सत्र की अवधि के लिए कम से कम 2 मेगा रैम का उपयोग करेगा।

खराब गणित आवश्यक है? आपको 1 उपयोगकर्ता के लिए क्या चाहिए और उस से, केवल 1 उपयोगकर्ता को व्हाट्स थिंक यूशोल्डबॉबलबॉन्डल

द्वारा गुणा करें, मुझे नहीं लगता कि पता लगाने का कोई अन्य तरीका है। क्योंकि फिर से, पृष्ठ के नीचे कोड मायने रखता है।

+0

अच्छा अंक। लेकिन कोड की गुणवत्ता सीपीयू या मेमोरी के उपयोग की दिशा में एक वास्तविक उपाय (यदि मापने योग्य नहीं है) है। – Abel

+0

@Abel, मैंने अपना उत्तर अपडेट किया – Fredou

+0

संपादन के लिए धन्यवाद, इसके लिए +1। मेरा मतलब यह नहीं था कि गुणवत्ता ** ** महत्वपूर्ण नहीं है। यह बहुत महत्वपूर्ण है। हालांकि, खराब कोड अक्सर मापने योग्य नहीं है। और अच्छे कोड में खराब कीड़े हो सकती हैं (एक छोटे थ्रेडिंग मुद्दे का हालिया मूर्ख उदाहरण, अप्रत्याशित विशाल मेमोरी बढ़ता है: बहुत अच्छा कोड, केवल एक बग, भारी परिणाम, लेकिन मैं बह रहा हूं ...)। वास्तव में, मैं यहाँ अंगूठे के कुछ नियम के बाद था। 2 गीगाहर्ट्ज/1 जीबी मशीन पर 25 के सत्र? मैंने इसे कभी नहीं देखा (अच्छे कार्यक्रमों में 1.5 के ठीक है, 5K बदतर में), लेकिन सामान्य दहलीज कहां है? – Abel

1

यह इस बात पर निर्भर करता है कि आप सर्वर पर कितना काम कर रहे हैं। कुछ ऐप्स 100 कर सकते हैं, अन्य केवल 10 के हैं।

+0

मैं सहमत हूं, लेकिन 10s या 100s यह नहीं लगता है कि हजारों या हजारों लोगों के बारे में सोचना उचित है, या है ना? – Abel

2

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

यह link Microsoft से किताब से "में सुधार नेट आवेदन प्रदर्शन और अनुमापकता" एक टुकड़ा है और यह सूत्रों का प्रदर्शन डेटा के साथ उपयोग कर सकते हैं (CPU उपयोग, IIS काउंटर आदि) उपयोगकर्ताओं की संख्या की गणना करने के आप कर सकते हैं विवरण आपकी साइट पर समर्थन। मैं पुस्तक के लिए दूसरा लिंक पोस्ट नहीं कर सका लेकिन यदि आप Google/Bing पर scalenet.pdf की खोज करते हैं तो आपको यह मिल जाएगा। उम्मीद है कि यह

+0

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

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