IIS7 ASP.NET एप्लिकेशन - 2 समान ऐप पूल में 2 समान ऐप, 1 उत्तरदायी है और 1 नहीं है


12

मेरे पास एक ASP.NET (v4.0) वेब ऐप है जो एक वर्चुअल डायरेक्टरी (एक एप्लीकेशन के रूप में) में स्थापित है और इसे स्वयं ऐप पूल में होस्ट किया गया है। यह ऐप के प्रत्येक उदाहरण (यानी प्रति ग्राहक) के लिए दोहराया जाता है।

एप्लिकेशन पूल एकीकृत हैं (क्लासिक नहीं) मोड और LoadUserProfile सही पर सेट है। अन्यथा, डिफ़ॉल्ट सेटिंग्स।

प्रत्येक उदाहरण में वर्तमान में कोड / कॉन्फिग की अपनी प्रति है, और यह स्वयं का डेटा फ़ोल्डर है (मूल फ़ाइल रीड / राइट्स)।

इस ऐप का 1 उदाहरण अच्छी तरह से चलता है (तुलना के लिए इस्तेमाल किया जाने वाला ऑपरेशन ~ 4 सेकंड)। हर दूसरा उदाहरण धीरे-धीरे चलता है (उसी ऑपरेशन के लिए 10-25 सेकंड से)।

अगर मैं धीमी आवृत्ति को "सबसे तेज़" ऐप पूल में स्थानांतरित करता हूं जो कि उदाहरण के लिए जीवन को स्प्रिंग्स करता है। यदि मैं तेज उदाहरण को धीमी ऐप पूल में ले जाता हूं जो आवृत्ति क्रॉल तक धीमा हो जाता है।

ऐप पूल शुरू में उसी तरह बनाए गए थे - मैन्युअल रूप से। मैंने बाद में तेजी से ऐप पूल की एक सटीक प्रतिलिपि और अभी भी समान व्यवहार सुनिश्चित करने के लिए पॉवरशेल कॉपी रूटीन का उपयोग किया। Apppool.config फ़ाइलों की तुलना करने से पता चलता है कि वे वर्चुअल निर्देशिका असाइनमेंट के समान हैं।

कोई साझा संसाधन नहीं हैं जो अवरुद्ध हो रहे हैं, अब तक मैं बता सकता हूं, और मैंने परीक्षण किया कि प्रदर्शन करने वाले ऐप पूल को बंद करके फिर से शुरू करना ... धीमा अभी भी धीमा है, और फिर जब मैं उस ऐप पूल को पुनरारंभ करता हूं (तो यह लोड होता है पिछले) यह अभी भी तेज है ...


और ऐप फ़ोल्डर बाइट-समान हैं?
usr

हां, केवल ट्रिपल चेक किया गया है, लेकिन केवल अंतर web.config में है जहां यह वर्चुअल निर्देशिका के नाम को निर्दिष्ट करता है, जिसे इसके तहत होस्ट किया जा रहा है (और मैंने डबल चेक किया कि केवल यही अंतर था) हर दूसरी फाइल बाइट-समान है। ।

ऐप क्या कर रहा है जो एक ऐप्पल में अधिक समय ले रहा है? क्या आप वीएस को संलग्न कर सकते हैं और इसे प्रोफाइल करने के लिए डिबगर को रोक सकते हैं?
usr

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

1
चूंकि आप उपयोगकर्ता प्रोफ़ाइल लोड कर रहे हैं, इसलिए यह उन ऐप पूल के बीच महत्वपूर्ण अंतर प्रतीत होता है। उन उपयोगकर्ताओं को अस्थायी स्थानों की जाँच करें, वहां लिखने की अनुमति दें, और यदि उसी उपयोगकर्ता का उपयोग करके डेटाबेस से कनेक्ट हो रहा है, तो DB पर भी अनुमतियों की जांच करें। सभी इसे लेता है एक क्वेरी के लिए उस उपयोगकर्ता के लिए मध्यांतर, इसलिए यदि संभव हो तो उसी DB के साथ परीक्षण करें। शुभ लाभ!

जवाबों:


1

समस्या को और अलग करने के लिए, मैं दो सत्रों के लिए, होस्ट सिस्टम पर Wireshark (या पसंद का अन्य पैकेट विश्लेषक) चलाने का सुझाव दूंगा। मान लें कि मैं बना रहा हूं कि प्रत्येक ऐप पूल में या तो एक विशिष्ट आईपी है, या एक अद्वितीय पोर्ट है।

सबसे पहले आईपी पर फ़िल्टर करके अपना बेसलाइन प्रदर्शन प्राप्त करें: अपने तेज़ ऐप पूल का पोर्ट। देखें कि "सामान्य" स्थितियों के तहत ऐप से ट्रैफ़िक क्या और कैसा दिखता है।

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

यह परीक्षण आपको बताएगा कि समस्या एप्लिकेशन के भीतर है, या यदि यह टीसीपी / आईपी से संबंधित समस्याएं हैं, जो कम / न संचार के कारण ऐप के समय के अनुरोध के परिणामस्वरूप हैं।

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


0

असफल अनुरोध अनुरेखण (FRT) यह नीचे ट्रैक करने के लिए आपका सबसे अच्छा उपकरण होगा। यह पाइपलाइन दिखाएगा और प्रत्येक चरण को पूरा करने में कितना समय लगा। यह इंगित करना चाहिए कि क्या यह asp.net भाग के भीतर कुछ है या यदि यह IIS पाइपलाइन के भीतर ही कुछ है।

एफआरटी को सेटअप करने के लिए, साइट स्तर पर आईआईएस से 200-999 की http स्थिति सीमा के साथ एक एफआरटी नियम बनाएं, और एफआरटी को सक्षम करना सुनिश्चित करें (यह क्रिया फलक से एक अलग कदम है)।

फिर समस्या को पुन: उत्पन्न करें और उत्पन्न फ़ाइलों को देखें (% SystemDrive% \ inetpub \ log \ FailedReqLogFiles \ w3svc {siteid})। उन्हें इंटरनेट एक्सप्लोरर में खोलें।


0

जब IIS बिना किसी स्पष्ट कारण के लंबे समय तक देरी करता है, तो इसका आमतौर पर मतलब होता है कि वह बाहर सेवा के लिए समय-समय पर प्रतीक्षा कर रहा है। जब यह होता है तो यह एक और दृष्टिकोण की कोशिश करता है। उस मामले के लिए यह विंडोज़ या लिनक्स में किसी भी चीज़ के बारे में सही है। इन स्थितियों में मेरे लिए पहला संदेह हमेशा नेटवर्क नाम रिज़ॉल्यूशन कॉन्फ़िगरेशन है। निर्दोष साबित होने तक यह दोषी है।

क्या यह डुप्लिकेट साइटों में से एक को मारने वाले एक उपयोगकर्ता के साथ फिर से बनाया जा सकता है? यह जानना अच्छा होगा कि जब आप 10 से 20 सेकंड के रिस्पांस टाइम को रीक्रिएट करते हैं तो सीपीयू और डिस्क क्या कर रहे होते हैं। यदि ऐसा प्रतीत होता है कि 10-20 सेकंड के दौरान ज्यादा नहीं चल रहा है, तो आपको बाध्य नामों के लिए अपने बाध्यकारी नामों और नाम समाधान की जांच करनी चाहिए। यदि सीपीयू या डिस्क चबा रहे हैं तो आपको यह पता लगाना होगा कि कौन सी प्रक्रिया बहुत कठिन है और क्यों काम कर रही है।

कृपया अपने निष्कर्ष पोस्ट करें, मैं उत्सुक हूं।

PS मैं नाम रिज़ॉल्यूशन और किसी भी प्रमाणीकरण सेवाओं तक पहुंच की भी जांच करूंगा जो खेल में हो सकती हैं। उदाहरण के लिए यदि डोमेन के लिए गंभीर परामर्श की आवश्यकता है तो सुनिश्चित करें कि आपकी सूची का पहला DNS सर्वर डोमेन के लिए DNS सर्वर है।


0

यह समाधान नहीं है लेकिन हम इसके लिए काम करेंगे;

  1. IISRESET चलाएं (रखरखाव घंटों के दौरान) या W3WP को मारें जो अप्रतिसादी ऐप पूल से संबंधित है

  2. एप्लिकेशन लॉन्च करें

  3. हालांकि यह अनुत्तरदायी है, डब्लू 3 डब्ल्यूपी की एक डंप फ़ाइल को पकड़ो जो धीमी ऐप पूल से संबंधित है। डंप फ़ाइल बनाने के लिए या तो प्रक्रिया एक्सप्लोरर या कार्य प्रबंधक का उपयोग करें

  4. Mscordacwks.dll और mscorwks.dll को C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.XXXXX के अंतर्गत से पकड़ो

  5. ज़िप और इन फ़ाइल को कहीं से अपलोड करें जहाँ से मैं डाउनलोड कर सकूँ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.