2010-09-26 12 views
5

मुझे अपने एएसपीनेट एप्लिकेशन पर प्रदर्शन समस्याओं का सामना करना पड़ रहा है। कभी-कभी यह कमांड निष्पादित करने के लिए क्लाइंट को 30-40 सेकेंड ले जाएगा, जहां कभी-कभी इसमें 3-4 सेकंड लगेंगे। मैंने एसक्यूएल प्रोफाइलर की कोशिश की और मुझे कोई समस्या नहीं दिखाई दे रही है। जब मैं क्लाइंट कोशिश कर रहा था, उसी परिदृश्य के तहत, मैं अपनी तरफ से इस मुद्दे को दोहराने में सक्षम नहीं था।एएसपी.NET सत्र प्रदर्शन

मुझे लगता है कि यह सत्र चर के साथ कर सकता है जो मैं उपयोग कर रहा हूं। मैं पृष्ठ के भीतर जानकारी पास करने के लिए उनमें से बहुत से उपयोग कर रहा हूं। हालांकि मैं उन्हें साफ़ नहीं करता हूं।

यदि मैं उन्हें साफ़ करता हूं तो क्या इससे मदद मिलेगी? और यदि ऐसा है तो यह अन्य उपयोगकर्ताओं को प्रभावित करेगा। या यह केवल उस उपयोगकर्ता के लिए स्पष्ट है?

किसी भी मदद की सराहना की जाती है।

+0

क्या यह होता है जब आप सीपीयू उपयोग और मेमोरी उपयोग दोनों सहित सर्वर लोड के बारे में अधिक जानकारी प्रदान कर सकते हैं? जब अनुरोध अचानक 30+ सेकंड लेना शुरू करते हैं तो मैं आमतौर पर संसाधन डेडलॉक्स या टाइमआउट की तलाश करता हूं। – sisve

+2

इस प्रकार के प्रश्नों का उत्तर देना वाकई मुश्किल है। हार्डवेयर कैसा है? कितने वेब सर्वर उपयोगकर्ता? सत्र में वास्तव में कितना डेटा (क्या आप "उनमें से बहुत से" को माप सकते हैं)? कितने SQL सर्वर उपयोगकर्ता? प्लेटफ़ॉर्म/हार्डवेयर/नेटवर्क थ्रूपुट में अंतर और लगभग दस लाख अन्य कारक (खराब कोड, खराब आर्किटेक्चर, दिन का समय, भार संतुलन, कैशिंग आदि) प्रदर्शन को प्रभावित कर सकते हैं। पर्यावरण कैसा है? –

+0

आप किस सत्र राज्य मोड का उपयोग कर रहे हैं? यानी inproc, sqlserver या स्टेटसर्वर? उत्तरार्द्ध दो पूर्व की तुलना में अधिक संसाधनों का उपयोग करेंगे, हालांकि वे भी अधिक लचीला हैं। –

उत्तर

0

सत्र और इसलिए सत्र चर उपयोगकर्ता विशिष्ट हैं इसलिए उन्हें साफ़ करने से अन्य उपयोगकर्ताओं को प्रभावित नहीं होगा।

आपके सत्र प्रकाश को बनाए रखने से निश्चित रूप से प्रदर्शन में सुधार करने में मदद मिलेगी।

0

सुझाव दें कि एएसपी.NET सत्र ऑपरेटिंग के सामान्य पाठ्यक्रम में आपके SQL सर्वर राउंडट्रिप समय को प्रभावित नहीं करेगा। मान लें कि आपकी डेटा परत (यानी स्थिर एसक्यूएलकनेक्शन ऑब्जेक्ट्स) से संबंधित सत्र में कुछ भी संग्रहीत नहीं किया जा रहा है

यदि आप उन लंबे समय (30-40 सेकंड) देख रहे हैं, तो यह निर्धारित करने का प्रयास करें कि प्रदर्शन धीरे-धीरे मंदी है या नहीं एसक्यूएल सर्वर roundtrip समय sporradic हैं।

पैटर्न निर्धारित करने में सहायता के लिए लॉगिंग लागू करने पर विचार करें। डिस्क पर लिखकर शुरू करें, एक फ़ाइल प्रतिदिन/घंटा जैसा कि आप उचित देखते हैं।

  • एसक्यूएल कमांड शुरू होने का प्रारंभ समय शुरू होता है। आप जिस क्वेरी/डेटासेट/प्रासंगिक जानकारी को पार कर रहे हैं उसे लॉग करें।
  • SQL कमांड का अंतिम समय।
 
--- Executing statement SELECT * FROM Customers 
--- Start 08:55.44 
--- End 08:55.45 
=== Roundtrip was 1 second SELECT * FROM Customers 

एक घंटे/दिन/सप्ताह के बाद, लॉग खुला "Roundtrip" देखने के लिए, और शायद आप के लिए इन लॉग पार्स करने के लिए एक प्रोग्राम लिखने।

1

SQL सर्वर-आधारित सत्र संग्रहण के .NET 2.0 कार्यान्वयन में संग्रहित प्रक्रियाओं में से एक में रिकॉर्ड लॉकिंग समस्या थी। ऐसा लगता है कि एमएस ने .NET 4.0 रिलीज में फिक्स को शामिल किया है।

यहाँ एक नज़र डालें: http://sanjevsharma.blogspot.com/2008/03/improving-aspnet-session-state-database.html

मैं 99% यकीन है कि आप इसके खिलाफ aspnet_regsql -ssadd के 4.0 संस्करण चला सकते हैं और अभी भी चलाने ASP.NET 2.0 हूँ। मुझे 2.0 बनाम 4.0 एसक्यूएल स्क्रिप्ट का एक अंतर करना याद है और उपरोक्त फिक्स एकमात्र वास्तविक अंतर था। फिक्स के एमएस 'कार्यान्वयन उपरोक्त लिंक (और स्पष्ट रूप से आधारित) से थोड़ा अच्छा था।

0

यदि समस्या आपके डेटाबेस नहीं प्रतीत होती है, तो आप अपने वेब ऐप को प्रोफाइल करने का प्रयास कर सकते हैं और देख सकते हैं कि बाधाएं कहां हैं। वेरिएबल समस्याओं को पुन: पेश करना मुश्किल है जैसे आप उत्पादन (4-40 सेकंड देरी) पर देख रहे हैं, लेकिन परिणाम कितने विधि कॉल हो रहे हैं और कौन से सबसे अधिक निष्पादन समय का उपभोग करते हैं, वे संकेत दे सकते हैं।

कुछ What Are Some Good .NET Profilers?

में उल्लेख कर रहे व्यक्तिगत तौर पर मैं EQATEC प्रोफाइलर के एक बड़े प्रशंसक हूँ।

0

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

0

क्या आपने एएसपी.NET ट्रेस लॉगिंग सक्षम करने और कॉल स्टैक में लोड समय देखने की कोशिश की है? मैंने एएसपी.NET प्रदर्शन में बाधा डालने का निदान करने के लिए इसका काफी कुछ उपयोग किया है। आप trace.axd से अपरिचित हैं, आप इसे अपने विन्यास फाइल

<trace enabled="true" /> 

इस विन्यास सेटिंग को सक्षम करने के माध्यम से सक्षम अनुमति देगा कर सकते हैं आप अपनी साइट की जड़ में trace.axd को खोजने में समर्थ है और पिछले 10 लेनदेन देखने विस्तार से। आप उस ट्रेस तत्व के माध्यम से एक बड़ा परिणाम सेट, रोलिंग परिणाम सेट, और अन्य निफ्टी ट्रेसिंग विकल्पों का एक समूह सक्षम कर सकते हैं।

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