हमारी सेवा हमारे क्लाइंट के सर्वर पर रात के दौरान सोती है, और उसके बाद जागने में मुश्किल होती है। ऐसा लगता है कि प्रक्रिया ढेर, जो कभी-कभी कई सैकड़ों एमबी है, को स्वैप फ़ाइल में ले जाया जाता है। यह रात में होता है, जब हमारी सेवा का उपयोग नहीं किया जाता है, और अन्य चलाने के लिए निर्धारित होते हैं (डीबी बैकअप, एवी स्कैन इत्यादि)। जब ऐसा होता है, निष्क्रियता के कुछ घंटों के बाद सेवा के लिए पहली कॉल कुछ मिनट तक लगती है (परिणामी कॉल सेकंड लेते हैं)।स्वैप फ़ाइल में डुबकी से भारी प्रक्रिया को रोकना
मुझे यकीन है कि यह वर्चुअल मेमोरी प्रबंधन का मुद्दा है, और मैं वास्तव में ओएस को भौतिक स्मृति में हमारी सेवा रखने के लिए मजबूर करने के विचार से नफरत करता हूं। मुझे पता है कि सर्वर पर अन्य प्रक्रियाओं को नुकसान पहुंचाएगा, और समग्र सर्वर थ्रूपुट कम करेगा। ऐसा करने के बाद, हमारे ग्राहक सिर्फ हमारे ऐप को उत्तरदायी होना चाहते हैं। अगर रात की नौकरियां अधिक समय लेती हैं तो उन्हें परवाह नहीं है।
मुझे अस्पष्टता से याद है कि विंडोज़ को भौतिक स्मृति पर पृष्ठों को रखने के लिए मजबूर करने का एक तरीका है, लेकिन मैं वास्तव में उस विचार से नफरत करता हूं। मैं कुछ आंतरिक या बाहरी निगरानी के लिए अधिक झुका रहा हूं जो उच्च स्तरीय कार्यक्षमताओं को शुरू करेगा (पहले से ही कुछ आंतरिक शेड्यूलर जो बहुत कम करता है, और कोई फर्क नहीं पड़ता)। यदि कोई तृतीय पक्ष उपकरण था जो प्रदान करता है कि उस तरह की सेवा उतनी ही अच्छी होगी।
मुझे इस तरह की समस्या के लिए कोई टिप्पणी, सिफारिशें और सामान्य समाधान सुनना अच्छा लगेगा। सेवा वीसी2005 में लिखी गई है और विंडोज सर्वर पर चलता है।
यह सच होगा अगर केवल मेरी सेवा सर्वर पर चल रही हो। हालांकि, यह एक वेब सर्वर, डेटाबेस, एंटीवायरस और अन्य सेवाएं भी चलाता है। पेज फ़ाइल की आवश्यकता को खत्म करने के लिए प्रत्येक प्रक्रिया के लिए 4 जीबी की आवश्यकता होगी, है ना? ऐसा कहकर, अधिक रैम जोड़ना एक अच्छा समाधान है, लेकिन यह ग्राहक पर निर्भर है, और मैं एक बार विकास नौकरी की तलाश में हूं जो कई ग्राहकों को अधिक पैसा खर्च करने के लिए मजबूर नहीं करेगा। – eran
"पृष्ठ फ़ाइल की आवश्यकता को खत्म करने के लिए प्रत्येक प्रक्रिया के लिए 4 जीबी की आवश्यकता होगी, है ना?" जैसा कि मैं इसे समझता हूं। 32-बिट विंडोज़ के लिए, 4 जीबी सब कुछ के लिए ग्रैंड कुल है, और यदि आप सभी चार गीगाबाइट प्राप्त करते हैं तो आप भाग्यशाली हैं। उदाहरण के लिए, इस मशीन में 4 जीबी की भौतिक मेमोरी है, लेकिन कार्यक्रमों के लिए केवल 2.75 जीबी उपलब्ध है, क्योंकि अन्य सामान पता स्थान खाते हैं। – kquinn
लेकिन प्रत्येक प्रक्रिया को अपना/4 जीबी पता स्थान मिलता है (कर्नेल जो भी लेता है उसे गिनता नहीं है), इसलिए यदि आपके पास 30 प्रक्रियाएं हैं तो उनमें से प्रत्येक 1 जीबी रैम का उपयोग कर सकती है और बस इसमें से अधिकतर इसे बदल दिया गया है, इस मामले में आप अभी भी पेज फ़ाइल को अक्षम करने की सिफारिश करने के लिए पृष्ठ फ़ाइल की आवश्यकता है ... –