मैं जल्द ही एक उच्च प्रदर्शन एएसपी.नेट जेसन एपीआई लिख रहा हूं> 1000 अनुरोध/दूसरा। मेरे सभी तर्क और प्रसंस्करण एक IHttpHandler में किया जाता है। मैंने स्टॉपवॉच क्लास के माध्यम से मापा और हैंडलर 0,1 - 0,5 मिलीसेकंड में एक अनुरोध पूरा करता है।उच्च प्रदर्शन एएसपी.नेट साइट (> 1000 अनुरोध/सेकेंड)
लेकिन ऐसा लगता है कि आईआईएस और/या अन्य HTTP हैंडलर (मॉड्यूल?) बहुत सारे प्रदर्शन को दूर कर रहे हैं। क्या मैं इसे किसी भी तरह माप सकता हूं? सर्वोत्तम प्रदर्शन के लिए कॉन्फ़िगर किए जाने पर आईआईएस में अनुरोध कितना ओवरहेड होगा?
उन सभी HTTPHandlers सहायता को हटा देगा, या इसे गति देने के लिए अन्य चालें हैं? मुझे सत्र के अलावा एएसपी.NET फीचर्स की अधिक आवश्यकता नहीं है (यह भी कामकाज कर सकता है कि अगर यह एक महत्वपूर्ण प्रदर्शन बढ़ावा देता है)।
के बाद से यह मूल रूप से 'async है और स्वयं के द्वारा होस्ट (ताकि आप IIS में चल रहा से बचने कर सकते) हो सकता है, ऐसा लगता है जैसे कि यह ASP.NET वेब एपीआई (बिल्ट-इन MVC4 करने पर देख लायक हो जाएगा, लेकिन यह भी उपलब्ध स्टैंडअलोन)। मैं @ http://blogs.msdn.com/b/henrikn/ –
Fwiw, प्रश्न के शब्दों में एक छोटे से मुझे अब तक के लिए अजीब है हेनरिक के ब्लॉग से इसके बारे में एक अच्छा सा सीखा है के रूप में यह मिश्रण करने विलंबता/बैंडविड्थ लगता है (नेटवर्क शर्तों का उपयोग करने के लिए)।एक विशेष अनुरोध की सेवा करने की विलंबता प्रभावी और समवर्ती रूप से उनकी सेवा करने की क्षमता के सापेक्ष महत्वपूर्ण (बाहरी उपयोगकर्ता अनुभव के बाहर, लेकिन स्केलेबिलिटी के लिए ऑर्थोगोनल) के रूप में महत्वपूर्ण नहीं लगती है। आईओयू, अगर हर अनुरोध ने सेवा के लिए 1000ms लिया, लेकिन आप एक समय में 2000 की सेवा कर सकते हैं, तो आप अभी भी ठीक रहेगा, है ना? –
यह सुनिश्चित नहीं है कि आपके द्वारा बनाए जा रहे एपीआई पर यह कितना लागू होगा, लेकिन यदि कुछ भी कैश करने योग्य है, तो ऐसा करना सुनिश्चित करें। और यदि आप स्टेटलेस रह सकते हैं, तो संभवतः आप एआरआर का उपयोग कर सकते हैं और यदि आवश्यक हो तो स्केल आउट कर सकते हैं। –