2012-05-31 22 views
6

में एएसपीनेट कैश द्वारा उपयोग की गई स्मृति का निर्धारण करें question के अनुसार, मैं जानना चाहता हूं कि asp.net की system.web.caching.cache मेरे लिए अच्छा है या मुझे डेटाबेस कैशिंग का उपयोग करना चाहिए?साझा होस्टिंग

तो, मुझे यह जानने की ज़रूरत है कि system.Web.caching.cache द्वारा कितनी मेमोरी का उपयोग किया जा रहा है? लेकिन चूंकि मैं एक साझा होस्टिंग सर्वर का उपयोग कर रहा हूं, इसलिए मैं टास्क मैनेजर का उपयोग नहीं कर सकता। क्या यह निर्धारित करने का कोई तरीका है कि कुछ कोड का उपयोग कर system.web.caching.cache द्वारा कितनी मेमोरी का उपयोग किया जाता है?

उत्तर

6

यह देखने का एक तेज़ तरीका है कि आपके एप्लिकेशन का उपयोग करने वाली कितनी मेमोरी मेमोरी कचरा संग्रह पूछने के लिए है।

long bytes = GC.GetTotalMemory(false); 
txtMemoryUsed.Text = bytes.ToString(); 

और इस शाब्दिक <asp:Literal runat="server" ID="txtMemorysUsed" EnableViewState="false" />

अधिक PerformanceCounter का उपयोग कर डिटेल्स लेकिन आप प्राप्त कर सकते हैं का उपयोग करें, उदाहरण के लिए आप कितने आभासी स्मृति पूल इस कोड द्वारा इस्तेमाल किया प्राप्त कर सकते हैं:

var oPerfCounter = new PerformanceCounter(); 
oPerfCounter.CategoryName = "Process"; 
oPerfCounter.CounterName = "Virtual Bytes"; 
oPerfCounter.InstanceName = "aspnet_wp"; 
txtMemorysUsed.Text = "Virtual Bytes: " + oPerfCounter.RawValue + " bytes"; 

आप अपने पूल के लिए जानकारी प्राप्त करने के लिए इन सभी पैरामीटर का उपयोग कर सकते हैं।

Processor(_Total)\% Processor Time 
Process(aspnet_wp)\% Processor Time 
Process(aspnet_wp)\Private Bytes 
Process(aspnet_wp)\Virtual Bytes 
Process(aspnet_wp)\Handle Count 
Microsoft® .NET CLR Exceptions\# Exceps thrown/sec 
ASP.NET\Application Restarts 
ASP.NET\Requests Rejected 
ASP.NET\Worker Process Restarts (not applicable to IIS 6.0) 
Memory\Available Mbytes 
Web Service\Current Connections 
Web Service\ISAPI Extension Requests/sec 

उदाहरण के लिए, इस पैरामीटर को सीपीयू लोड मिलता है।

oPerfCounter.CategoryName = "Processor"; 
oPerfCounter.CounterName = "% Processor Time"; 
oPerfCounter.InstanceName = "_Total"; 
txtOutPut.Text = "Current CPU Usage: " + oPerfCounter.NextValue() + "%"; 

संदर्भ: http://msdn.microsoft.com/en-us/library/ms972959.aspx

रिश्तेदार: Monitoring ASP.NET application memory from within the application

मैं परीक्षण किया है कि स्थानीय आईआईएस और कार्यों पर।

+0

क्या जीसी मुझे वर्तमान वेब एप्लिकेशन द्वारा उपयोग की जाने वाली मेमोरी देता है? –

+0

@Mahdi साझा वातावरण में पूल कई साइटों को चलाता है, आपकी साइट अन्य साइटों के साथ रहती है, सिवाय इसके कि यदि आपने "निजी" पूल मांगा है। (इसलिए यह सिर्फ वर्तमान वेब अनुप्रयोग नहीं है, बल्कि पूल है)। तो आपको अपने पूल की याद आती है (अन्य साइटों सहित जो एक साथ चलती हैं) – Aristos

+0

मेरा कंट्रोल पैनल प्लेस्क है, और ऐसा लगता है कि प्रत्येक उपयोगकर्ता के पास एक एप्लिकेशन पूल होता है। (मैं इसे रोक/शुरू कर सकता हूं या यहां तक ​​कि मेरी साइटों के सीपीयू उपयोग को भी सीमित कर सकता हूं)। तो, मेरा आवेदन पूल निजी है? –