IIS में किसी एप्लिकेशन द्वारा उपयोग की जाने वाली मेमोरी को कैसे सीमित करें?


18

हमारे सर्वर पर IIS कार्यकर्ता प्रक्रियाएँ बहुत मेमोरी ले रही हैं। मैं उस मेमोरी को सीमित करना चाहता हूं जो प्रत्येक एप्लिकेशन उपयोग कर सकता है। मुझे भ्रम है कि मुझे वर्चुअल मेमोरी लिमिट या प्राइवेट मेमोरी लिमिट पर कोई सीमा निर्धारित करनी चाहिए या नहीं। हमारे IIS में प्रत्येक एप्लिकेशन अपने स्वयं के एप्लिकेशन पूल पर है।

अगर मैंने निजी मेमोरी सीमा 500MB और वर्चुअल मेमोरी सीमा 3GB कर दी है। एप्लिकेशन पूल कब रीसायकल करता है? क्या यह 500MB तक पहुंचने के बाद या 3GB तक पहुंचने के बाद रीसायकल करता है।


ये 'वर्चुअल मेमोरी लिमिट' और 'प्राइवेट मेमोरी लिमिट' विकल्प कहां हैं जिनसे आप बात करते हैं?
कर्नल पैनिक

1
@ColonelPanic IIS7.5 पर, वे एक ऐप पूल के Advanced Settings -> Recyclingसेक्शन के तहत हैं ।
एन जी एम

जवाबों:


16

IIS उन दोनों सीमाओं का सम्मान करेगा।

यदि आप 500MB निजी बाइट सीमा निर्धारित करते हैं, जैसे ही एक कार्यकर्ता प्रक्रिया 501MB करने का प्रयास करती है, IIS एक नई कार्यकर्ता प्रक्रिया को स्पिन करेगा और पुराने को मार देगा।

यदि आप एक 3 जीबी वर्चुअल मेमोरी सीमा निर्धारित करते हैं, जैसे ही एक कार्यकर्ता प्रक्रिया 3.001 जीबी आरक्षित करने का प्रयास करती है, तो आईआईएस एक नई कार्यकर्ता प्रक्रिया को स्पिन करेगा और पुराने को मार देगा।

यदि आप 64 बिट प्लेटफॉर्म पर हैं, तो आपको पता होना चाहिए कि ASP.NET ऐप आक्रामक रूप से वर्चुअल मेमोरी को आरक्षित करता है। एक उदाहरण के रूप में, मेरे पास एक फार्म पर एक ऐप है जो केवल 88 एमबी निजी बाइट्स का उपयोग करता है, लेकिन इसके 5.4 जीबी वर्चुअल साइज़ पर अभी बैठा है। मेरा मानना ​​है कि वर्चुअल मेमोरी रिजर्वेशन सर्वर पर फिजिकल रैम का एक फंक्शन है। यह समझना भी महत्वपूर्ण है कि 64 बिट प्लेटफॉर्म पर वर्चुअल मेमोरी के बड़े हिस्से को स्टोर करने पर शून्य प्रदर्शन प्रभाव पड़ता है।

मूल रूप से, यदि आप IIS सर्वर पर मेमोरी की खपत के मुद्दे हैं, तो आप जिस सेटिंग को सीमित करना चाहते हैं वह निजी मेमोरी / बाइट्स है, यह वही है जो वास्तविक मेमोरी उपयोग से मेल खाती है।


धन्यवाद डोमिनिक, क्या कोई ऐसा तरीका है जिससे हम 500Mb निजी मेमोरी का उपयोग करने के लिए एक प्रक्रिया सेट कर सकते हैं और एक बार यह उस सीमा को पार कर बिना रीसाइक्लिंग के डिस्क पर वर्चुअल मेमोरी का उपयोग करना शुरू कर देता है?
किशोर

2
यह नही है कि मैं जानता हूँ। ASP.NET अनुप्रयोग में एक बार जब आप बाइट्स समस्याएँ शुरू करते हैं तो आपके पास मूल रूप से 3 विकल्प होते हैं। 1. जब आप एक घंटे में सीमा या रात में पहुंचते हैं तो प्रक्रिया को रीसायकल करें (स्पष्ट रूप से पसंदीदा नहीं, और उपयोग विंडो के दौरान पुनर्चक्रण करने पर सत्र डेटा को सही ढंग से प्रबंधित करने के लिए मत भूलना)। एप्लिकेशन के लिए अतिरिक्त भौतिक मेमोरी प्राप्त करें (RAM जोड़ें) सर्वर फ़ार्म, या विभिन्न फ़ार्म पर जाना, यह आपकी स्थिति के आधार पर सबसे सरल समाधान हो सकता है)। 3. एप्लिकेशन को ऐसे संशोधित करें कि वह अधिक कुशलता से मेमोरी का उपयोग करता है। (सर्वश्रेष्ठ विकल्प, लेकिन इसे लागू करना मुश्किल हो सकता है)
डोमिनिक डी

मैंने कई ASP.NET ऐप में मेमोरी के आक्रामक आरक्षण पर भी ध्यान दिया। क्या कोई इस विषय पर कुछ अच्छे संसाधनों की सिफारिश कर सकता है? मैं इस बारे में अधिक जानकारी प्राप्त करना चाहूंगा कि यह कैसे और क्यों होता है ... मैं क्या देखता हूं कि जितनी अधिक मेमोरी उपलब्ध है, उतनी ही अधिक मेमोरी एप्स को आवंटित करती है।
टॉम पॉज़्रुक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.