2009-01-21 16 views
12

शायद कोई इस साधारण प्रश्न पर कुछ प्रकाश डाल सकता है:यहां तक ​​कि एक एप्लिकेशन पूल रीसायकल क्यों?

मेरे पास एक .NET वेब एप्लिकेशन है जिसे पूरी तरह से जांच की गई है। जब भी कोई प्रारंभ होता है तब तक यह एक कैश प्रति एपडोमेन (प्रक्रिया) लोड करता है और जब तक यह कैश लोडिंग पूरा नहीं हो जाता है तब तक अनुरोधों का पूरी तरह उत्तर नहीं दे सकता है।

मैं अपने आवेदन पूल पर सेटिंग्स की जांच कर रहा हूं और सोच रहा हूं कि मैं इतनी बार रीसाइक्लिंग क्यों कर रहा था (एक बार हर 1,000,000 कॉल या 2 घंटे)।

ऑटो-रीसाइक्लिंग को हर 24 घंटे या उससे भी अधिक समय में स्थापित करने से मुझे क्या रोक सकता है? अगर एपडोमेन के लिए मेमोरी स्पिन से बाहर निकलती है तो विकल्प को पूरी तरह से हटाएं और रीसायकल क्यों न करें?

उत्तर

4

ऐसा करने का कारण यह है कि एक एप्लिकेशन "काम नहीं कर रहा" हो सकता है भले ही यह सीपीयू और मेमोरी ठीक है (डेडलॉक सोचें)। ऐप रीसाइक्लिंग एक अंतिम असफलता उपाय है जो दोषपूर्ण कोड को मरने से बचा सकता है।

इसके अलावा कोई भी कोड जो आईडीस्पोजेबल को लागू करने में विफल रहा है, वह रीसायकल पर अंतिम रूप देगा जो संभवतः संसाधनों को जारी करेगा।

6

आपको शायद विश्वसनीयता के दृष्टिकोण से रीसाइक्लिंग की तलाश करनी चाहिए। ऐतिहासिक डेटा के आधार पर, आपको यह पता होना चाहिए कि आपके ऐप का उपयोग कितनी मेमोरी, सीपीयू और इतनी है, और ऐतिहासिक पैटर्न और जब परेशानी शुरू होती है। यह जानकर, आप उन मुद्दों का मुकाबला करने के लिए रीसाइक्लिंग को कॉन्फ़िगर कर सकते हैं। उदाहरण के लिए, यदि आप जानते हैं कि आपके ऐप में बढ़ती मेमोरी उपयोग पैटर्न है * जो कई दिनों की अवधि के बाद मेमोरी से बाहर निकलने वाले ऐप की ओर जाता है, तो आप इसे होने से पहले रीसायकल में कॉन्फ़िगर कर सकते हैं।

* जाहिर है, आप भी यदि संभव हो तो इस बग को हल करना चाहते हैं जाएगा, लेकिन रीसाइक्लिंग आपके आवेदन अब तो के लिए मज़बूती से चलाता है ग्राहक

8

के लिए विश्वसनीयता को बढ़ाने के लिए इस्तेमाल किया जा सकता सीमा, अनुप्रयोग पूल रीसाइक्लिंग के लिए सेट करें, फिर हर तरह से दहलीज में वृद्धि। यदि आपका ऐप स्थिर है तो कोई नकारात्मकता नहीं है।

हमारे लिए, हमारे पास रीसाइक्लिंग पूरी तरह से बंद हो गया है, और इसके बजाय एक कार्य है जो प्रत्येक मिनट एक टेस्ट पेज लोड करता है और यदि यह पंक्ति में पांच बार लोड करने में विफल रहता है तो iisreset चलाता है।

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