2015-07-23 2 views
5

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

मेरी चिंता स्मृति प्रबंधन और सीपीयू उपयोग है, विशेष रूप से यह प्रक्रिया हमेशा चलने के बाद से कैसे संभाली जाती है।

मैं स्टार्ट मोड को ऑनडेमैंड पर सेट करने और कुछ दिनों तक निष्क्रिय समय मिनट बढ़ाने के लिए इसकी तुलना कैसे कर सकता हूं? इस तरह, मुझे लगता है कि प्रक्रिया समाप्त होने से पहले x दिनों के लिए निष्क्रिय मोड में चलती है, और अगले अनुरोध पर पुन: प्रारंभ की जाती है और कुछ दिनों तक चलती रहती है। यदि मैंने मिनटों को 1.5 दिनों के लिए निर्धारित करने के लिए सेट किया है, तो कोई दिन में कम से कम एक बार एप्लिकेशन का उपयोग करने के लिए बाध्य है, इसलिए यह प्रक्रिया रनटाइम जारी रहेगा और इसे कभी समाप्त नहीं किया जाएगा।

क्या कोई इस विषय के बारे में अनुभव साझा कर सकता है?

धन्यवाद

उत्तर

2

मैं एकाधिक अनुप्रयोग है कि अलग एप्लिकेशन पूल के तहत कुछ साइटों चलाता है। सभी 1740 मिनट के लिए स्टार्ट मोड और IdleTime के लिए OnDemand सेट हैं, मैं अलग-अलग पेज प्रकारों के लिए अलग-अलग समय के साथ ऐप से पेज आउटपुट कैश का उपयोग करता हूं। दृश्य के पीछे एनएचबेर्नेट भी है और डीबी MySQL है।

सबसे सक्रिय साइट प्रति दिन 100k से अधिक विज़िट करती है और लगभग कभी निष्क्रिय नहीं होती है। जब मैं रीसायकल करता हूं तो यह शुरू होता है, इस समय अनुरोधों के आधार पर 30 सेकंड से 2 मिनट की आवश्यकता होती है और CPU उपयोग 40% से 70% तक जा रहा है। साइट के बाद सीपीयू उपयोग बहुत कम है (0-4%) यदि डीबी में कोई नई प्रविष्टियां नहीं हैं और सभी कैश किए जाने पर मेमोरी उपयोग लगभग 3 जीबी है। कभी-कभी सीपीयू 20% तक जा रहा है अगर उस समय नया अनुरोध (कैश सामग्री के लिए नहीं) और नई प्रविष्टि की बचत है। पेज आउटपुट कैश पहले आओ फर्स्ट सर्विस बेस पर काम करता है, इसलिए कैशिंग करने के दौरान यह छोटी समस्या भी पैदा कर सकता है - उपयोगकर्ता को इंतजार करना होगा, कैशिंग करने के लिए थोड़ा और सीपीयू।

मेरे मामले में सबसे बड़ी समस्या NHibernate और MySQL का उपयोग कर रही है लेकिन पेज आउटपुट कैश ने पृष्ठ मॉड्यूल और सामग्री को कैश करने का निर्णय लिया है, तो मेरे लिए समस्या का समाधान किया। मुझे एहसास है कि सीपीयू के लिए मेमोरी के लिए भूखा होने के लिए बेहतर एप्लीकेशन है। 3.5k विज़िटर एक पल में जब सबकुछ कैश किया जाता है तो मुझे एक ही मेमोरी उपयोग (3 जीबी) और सीपीयू (सर्वर समग्र) लगभग 40% दिया जाता है अन्य साइटें लगभग 1-1.5 जीबी मेमोरी का उपयोग कर रही हैं और सीपीयू शुरू में 20% अधिक नहीं है। ऐप पूल के लिए समान सेटिंग्स वाले एप्लिकेशन और ईएफ के साथ एमएसएसक्यूएल का उपयोग करके मैं सर्वर पर चलने पर भी ध्यान नहीं दे सकता। इसका उपयोग 10-60 उपयोगकर्ताओं द्वारा मिनट में किया जाता है, जिसमें एम्बेडिंग कोड को छोड़कर बहुत अधिक सामग्री नहीं होती है और यह 1-5% सीपीयू का उपयोग करती है और 8 एमबी से अधिक स्मृति नहीं होती है। रीसायकल पर यह 10 सेकंड के बाद कम है।

इस अनुभव के साथ मैं आपको बता सकता हूं कि सभी इस बात पर निर्भर करता है कि कौन सा एप्लिकेशन कार्य करता है और यह कैसे काम करता है :) और आपके पास कितनी सामग्री है।

यदि आप ऑनडेमैंड का उपयोग लंबे समय से निष्क्रिय समय के साथ करते हैं तो यह हमेशा स्टार्ट के समान होगा और उस पल में प्रक्रिया का उपयोग नहीं किया जाता है। यदि आप कम IdleTime के साथ OnDemand का उपयोग करते हैं तो अक्सर आपको प्रक्रिया शुरू करने के लिए CPU की आवश्यकता होगी।

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