سؤال

في بيئة الإنتاج، كيف يمكن للمرء اكتشاف أي طلبات HTTP Asp.Net، سواء ASPX أو asmx أو العرف، وتسبب في معظم ضغط الذاكرة ضمن عملية W3wp.exe؟ أنا لا أقصد هنا تسرب الذاكرة. انها تطبيق صحي جيد أن يتصرف كل ما في الأشياء بشكل جيد. GC الأجيال مايكروسوفت لا انها تعمل بشكل جيد. بعض طلبات ومع ذلك، تؤدي عملية w3wp أن ينمو بصمة الذاكرة إلى حد كبير، ولكن فقط لمدة الطلب.

بل هو مجرد مسألة الكفاءة من حيث التكلفة وقابلية للبيئة لإنتاج التطبيق SAAS، من أجل تقديم تقارير منتظمة إلى قسم التطوير في معظم ذاكرتهم القص "الصفحات"، للعودة أن (الذاكرة) الضغط حيث تنتمي ، إذا جاز التعبير.

لا يبدو أن يكون أي شيء مثل:
HttpContext.Request.PeakPrivateBytes أو .CurrentPrivateBytes
أو
Session.PeakPrivateBytes

هل كانت مفيدة؟

المحلول

وقد ترغب في استخدام أداة مثل مراقبة الأداء لمراقبة "عملية \ مجموعة العمل" لعملية W3wp.exe وسجل إلى قاعدة بيانات. ثم هل يمكن أن ربط ذلك إلى سجلات HTTP لملقم IIS.

وويساعد على أن يكون كل من البيانات بيرفمون وHTTP بتسجيل كل من الكتابة إلى قاعدة بيانات SQL. ثم يمكنك استخدام T-SQL لإحضار الصفحات المطلوبة حسب التاريخ / الوقت في وقت قريب من ضغط الذاكرة لوحظ. استخدم الدالة DatePart لبناء التاريخ / الوقت مقربا إلى الدقة المطلوبة من الثانية أو دقيقة حسب الحاجة.

وآمل أن يساعد هذا.

وشكرا، -Glenn

نصائح أخرى

إذا كنت تستخدم حالة جلسة InProc، يتم تخزين كافة البيانات جلسة العمل الخاصة بك في الذاكرة w3wp ل، وربما يكون سبب ذلك النمو.

وأود أن لا تقلق بشأن ذلك. يمكن أن يكون ذلك في GC يحدث أثناء الطلب، وCLR وتخصيص الذاكرة لتحريك الأمور حولها. أو قد يكون بعض الشيء الآخر الدوري خدمة التي تأتي جنبا إلى جنب مع ASPNET.

وإلا إذا كنت على استعداد للذهاب استكشاف الكهوف مع تحليل الأداء الإقتصادي الأداء عداد جيل 0،1،2 الأحداث GC، وغيرها، ثم أود أن لا تقلق حول حل هذه "المشكلة".

وأنه لا يبدو انها مشكلة على أي حال - مجرد شيء الفضول

.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top