मेरे पास एक कस्टम सर्वर एप्लिकेशन है जो विंडोज 2008 आर 2 पर चलता है। यह एक कस्टमाइज़्ड विंडोज सर्विस है, जो कि .Net में लिखी गई है, जो कई कस्टम टर्मिनलों का समर्थन करती है। मेरे पास एक परीक्षण मशीन है जिसमें लाइव सर्वर के समान विनिर्देश हैं और मेरे पास क्लाइंट सिमुलेटर का एक सेट है जो मैं लोड का उत्पादन करने के लिए उपयोग कर सकता हूं जो वास्तविक प्रणाली का एक उचित अनुमान है। मुझे इनमें से 12,000 का समर्थन करने में सक्षम होना चाहिए और वर्तमान में सर्वर मेमोरी से बाहर चल रहा है (पेजिंग छत से गुजर रहा है)।
मेरी योजना केवल 100 सिमुलेटर शुरू करने, स्मृति उपयोग को मापने की थी, फिर 100 और माप मेमोरी को फिर से शुरू करें और तब तक दोहराएं जब तक पेजिंग शुरू न हो जाए (वास्तव में मैं तीन से अधिक डेटा बिंदु ले रहा हूं।) यह मुझे एक आंकड़ा देना चाहिए। 100 सिमुलेटरों के लिए आवश्यक अतिरिक्त मेमोरी की मात्रा और मुझे यह प्रोजेक्ट करने में सक्षम करें कि कितनी मेमोरी की आवश्यकता है। मुझे केवल एक मोटे विचार +/- 30Gb की आवश्यकता है जो कि सर्वर ले जाएगा पूर्ण 2Tb ($ 150,000 मूल्य) खरीदने से बचने के लिए। मेरा सवाल यह है कि क्या यह उपयोग करने के लिए एक उचित तरीका है और यदि ऐसा है तो कौन सा प्रदर्शन काउंटरर्स वास्तव में उपयोग की जा रही मेमोरी की मात्रा देने के लिए निगरानी करेगा?
मैं विशेष रूप से यहां मेमोरी के बारे में बात कर रहा हूं क्योंकि वर्किंग सेट, प्राइवेट बाइट्स, कमिटेड, शेयर्ड, वर्चुअल और अन्य सभी मेमोरी टर्म्स के बीच का अंतर मुझे भ्रमित करता है। मुझे लगता है कि मैं स्वयं सीपीयू, आईओ और नेटवर्किंग की निगरानी कर सकता हूं। दूसरी बात जिस पर मैंने गौर किया है कि .Net कैश अपनी मेमोरी के उपयोग को इस बात पर निर्भर करता है कि क्या उपलब्ध है जो देखने के लिए कठिन प्रवृत्ति को दर्शाता है।