تبلیغات
آموزشASP.NET - افزایش كارآئی برنامه های وب در ASP.NET 2.0 (بخش سوم)




نوع مطلب :
برچسب ها :
لینک های مرتبط :

جمعه 24 شهریور 1396 05:48 ب.ظ
hey there and thank you for your info – I've definitely picked up anything new from right here.

I did however expertise several technical points using this web site, since I experienced
to reload the site a lot of times previous to I could get it to load correctly.

I had been wondering if your web host is OK? Not that I'm complaining, but slow loading instances times
will very frequently affect your placement in google and could damage your
high quality score if ads and marketing with Adwords.
Well I'm adding this RSS to my email and could look out for
much more of your respective intriguing content.
Make sure you update this again very soon.
پنجشنبه 16 شهریور 1396 11:50 ق.ظ
I know this web site presents quality based posts and other stuff, is there any other web page which provides these things in quality?
سه شنبه 14 شهریور 1396 09:13 ق.ظ
I enjoy what you guys are up too. Such clever work and coverage!
Keep up the wonderful works guys I've included you guys to my personal blogroll.
چهارشنبه 1 شهریور 1396 12:45 ب.ظ
Thanks , I have recently been searching for information about this topic
for a long time and yours is the best I have came upon till now.
However, what about the bottom line? Are you sure in regards to the
supply?
پنجشنبه 24 فروردین 1396 09:46 ب.ظ
This page really has all of the information and facts I needed
concerning this subject and didn't know who to ask.
 
فردا روشن اسن به
آموزشASP.NET
صفحه نخست         تماس با مدیر         پست الکترونیک        RSS         ATOM
 
 
در بخش های اول  و دوم به مجموعه ای از نكات اشاره گردید كه رعایت آنها در زمان طراحی می تواند زمینه پیاده سازی یك برنامه وب كارآ را فراهم نماید . در این بخش به بررسی امكانات و ابزارهای موجود برای تست برنامه های وب خواهیم پرداخت .
یكی از مسائل مهم در ارتباط با برنامه های وب ، عدم تست آنها با شرایط مشابه و یا  نزدیك به محیط واقعی است . در این راستا می توان از نرم افزارها و یا ابزارهای مختلفی استفاده كرد تا بتوان عملكرد و سرویس دهی یك برنامه وب  را قبل از زیر بار رفتن واقعی مشاهده و بررسی نمود .
برای قضاوت در خصوص  تلاش های انجام شده در ارتباط با بهبود كارآئی یك برنامه وب ، می بایست  قادر به سنجش كارآئی آن در عمل باشیم .  در مواردی كه كارآئی یك برنامه كند و  ناامید كننده است  ، می بایست بر اساس اطلاعات كافی اقدام به شناسائی  گره ها و عوامل تاثیر گذار بر روی كارآئی برنامه های وب نمائیم تا از این رهگذر بتوان مشكل و یا مشكلات را برطرف و یك برنامه وب كارآ را آماده استفاده عملیاتی و نهائی كرد .
شركت مایكروسافت در این رابطه ابزارها و برنامه های متعددی را ارائه نموده است كه در ادامه به بررسی آنها خواهیم پرداخت .


Stress Testing
پیاده كنندگان برنامه های وب می توانند از ابزارهای تست متعدد به همراه برخی امكانات ارائه شده در فریمورك دات نت برای پروفایل كردن برنامه های ASP.NET استفاده نمایند . اغلب ، گذر از مرحله تست و  اعمال یك پل ارتباطی بین نتایج تست و برنامه وب كار زمان گیری است . به عنوان نمونه ممكن است در مرحله تست بتوان اطلاعات مهمی نظیر TTFB ( برگرفته شده از  Average Time to first byte )  كه نشان دهنده مدت زمان ارسال درخواست و دریافت اولین بایت از سرویس دهنده است و یا TTLB ( برگرفته شده از  Average Time to last byte  ) كه  نشان دهنده  زمان ارسال درخواست و دریافت آخرین بایت از سرویس دهنده است را ركورد و ثبت نمود . ولی بدون استفاده از یك روش دقیق و صحیح اندازه گیری ، تشخیص پارامترهای تاثیرگذار در كاهش كارآئی یك برنامه وب كار مشكلی خواهد بود . 
به عنوان مثال ، كاهش كارآئی یك برنامه وب ممكن است مربوط به سرعت پائین هارد دیسك ، تنظیمات ضعیف ASP.NET ، عدم طراحی صحیح بانك اطلاعاتی و یا عدم طراحی مناسب برنامه باشد . در واقع‌، تست كارآئی علم و دانش مختص به خود را دارد .
برای انجام اكثر تست های اولیه ، می توان از یك سرویس دهنده اختصاصی و مجموعه ای از سرویس گیرندگان استفاده نمود كه از طریق یك شبكه سریع ایزوله شده با سرویس دهنده وب تعامل برقرار می نمایند . بدین منظور می توان از یك ابزار تولید load  كه بطور اتوماتیك مجموعه ای ‌از صفحات را از سرویس دهنده درخواست می نماید استفاده كرد تا یك لود سنگین شبیه سازی گردد . ACT ( برگرفته شده از  Application Center Test ) و  WAST ( برگرفته شده از  Web Applications Stress Tool ) دو نمونه متداول در این زمینه می باشند  . 
با استفاده از ابزارهای فوق می توان شرایط حاكم بر یك برنامه وب در دنیای واقعی را شبیه سازی نمود ( تداوم درخواست صفحات از طریق چندین اتصال همزمان ) . اكثر ابزارهای تولید load ، فعالیت ها و كارهائی را كه انجام می دهند ثبت می نمایند تا امكان بررسی آنها توسط طراحان و پیاده كنندگان وجود داشته باشد .
علاوه بر برنامه های فوق ، می توان نتایج را با استفاده از  Windows performance counters ثبت و مشاهده كرد .

performance counter
برنامه performance counters  ویندوز یكی از ابزارهای متداول موجود برای اندازه گیری كارآئی یك برنامه می باشد . با استفاده از برنامه فوق می توان به تعداد دلخواه counter را اضافه و یا مستقیما" كارآئی را از طریق جعبه محاوره ای system performance اندازه گیری كرد .
برای فعال كردن برنامه فوق می توان  از مسیر Settings|Control Panel |Administrative Tools |Performance استفاده كرد.  این برنامه  به صورت پیش فرض صرفا" كارآئی  پردازشگر اصلی سیستم و دیسك را اندازه گیری می نماید .
پس از نصب ASP.NET ، مجموعه ای counter مفید برای ردیابی و ارزیابی كارآئی برنامه های وب نیز نصب می گردد . برای اضافه كردن counter ، با كلیك (سمت راست)  بر روی لیست counter و انتخاب properties ، می توان گزینه های مختلفی را پیكربندی نمود ( نظیر تغییر شكل ظاهری نمودار و نحوه ثبت اطلاعات در قالب یك گزارش ) .
یكی از مهمترین گزینه ها بخش مربوط به Data است كه با استفاده از آن می توان به لیست موجود  یك counter را اضافه و یا از آن حذف نمود . برای شروع ، می توان تمامی كانتر های پیش فرض را حذف و با استفاده از گزینه Add موارد دلخواه را به لیست اضافه نمود  .

 اضافه كردن یك counter
شكل 1 : اضافه كردن یك counter جدید

در جعبه محاوره ای Add Counter ، چندین ویژگی مهم  از جمله امكان مشخص كردن نام كامپیوتر وجود دارد . به عبارت دیگر ، شما می توانید كارآئی یك كامپیوتر راه دور را مانیتور نمائید . مانیتورینگ كارآئی سرویس دهنده وب از طریق یك سرویس گیرنده ایده آل است چراكه احتمال تاثیر عملكرد مانیتورینگ بر روی سرویس دهنده از بین خواهد رفت . ویژگی مهم بعدی ، performance object است كه با استفاده از آن می توان یك گروه counter را متناسب با شی مورد نظر انتخاب نمود . گروه ASP.NET اطلاعات كاملی را در خصوص كارآئی كلی برنامه های ASP.NET ارائه می نماید . این در حالی است كه گروه ASP.NET Application اطلاعاتی را در رابطه با یك برنامه وب خاص ارائه می نماید .
برخی از انواع مفید كانترها به همراه گروه ، نام counter و عملكرد هر یك از آنها در جدول 1 نشان داده شده است .
سطرهای ستاره دار، كانترهائی را مشخص می نماید كه با استفاده از آنها می توان اشكال زدائی یك مسئله را انجام داد . سایر سطرها ، كانترهائی را نشان می دهد كه استفاده از آنها همواره مفید می باشد .

گروه

counter

عملكرد

processor % CPU Utilization

درصد استفاده از CPU را نشان می دهد . در صورتی كه استفاده از CPU در یك بازه زمانی صرفنظر از load سرویس گیرنده ثابت باقی بماند ، نشان دهنده انتظار یك برنامه برای استفاده از یك منبع محدود است .  

ASP.NET Requests Queued

تعداد درخواست های در انتظار پردازش را مشخص می نماید . از counter فوق برای مشخص كردن حداكثر load سرویس دهنده وب استفاده می گردد .

ASP.NET * Application Restarts ,
Worker Process Restarts

تعداد دفعاتی كه پردازه ASP.NET راه اندازی مجدد و یا reset می گردد را مشخص می نماید . این counter نشاندهنده بروز مسائل ناخواسته است.

ASP.NET Applications Requests/Sec

حداكثر توان عملیاتی برنامه وب را مشخص می نماید .

ASP.NET Applications * Errors Total

تعداد خطاء تولید شده توسط یك برنامه وب را مشخص می نماید . مقدار این counter در عمل می بایست صفر و یا نزدیك به صفر باشد .

ASP.NET Applications Pipeline Instance Count

تعداد درخواست pipeline یك برنامه را مشخص می نماید و از آن برای مشخص شدن حداكثر درخواست همزمانی كه می توان به آنها پاسخ داده شود ، استفاده می گردد .
در صورتی كه مقدار این counter تحت یك load پائین باشد ، نشان دهنده استفاده مطلوب از CPU است . 

System * Context Switches/sec

پارامتر فوق تعداد دفعات سوئیچینگ thread context را نشان می دهد . در صورتی كه مقدار این پارامتر زیاد باشد ،  thread های مختلف برای استفاده از  یك منبع محدود با یكدیگر رقابت می نمایند .

     جدول 1 : لیست برخی كانترهای مفید   

دستیابی به  كلاس های performance counters از طریق كد
با توجه به این كه  ASP.NET بخشی از فریمورك دات نت است ، پیاده كنندگان برنامه های وب می توانند در صفحات وب نوشته شده با استفاده از فناوری ASP.NET به تمامی كلاس های موجود در فریمورك دات نت دستیابی داشته باشند . این بدان معنی است كه از طریق یك صفحه وب ASP.NET می توان عملیات متعددی نظیر پردازش تصاویر ، نوشتن در event log و یا خواندن و انعكاس performance counters در خروجی را انجام داد . گرچه استفاده از امكاناتی از این قبیل ممكن است چالش های امنیتی مختص به خود را دارا باشد ولی با رعایت نكات ایمنی می توان پتانسیل برنامه های وب را در جهت ارائه خدمات مطلوب و بهینه به كاربران افزایش داد .
به عنوان نمونه می توان یك performance counter  جدید را اضافه و یا مقدار متناظر با یك performance counter را بازیابی و در ادامه آن را در یك صفحه وب و یا یك برنامه desktop نمایش داد .
برای استفاده از پتانسیل فوق ، از namespace با نام  System.Diagnostics  استفاده می گردد . لیست برخی از كلاس های دات نت به منظور تعامل با performance counter در  جدول 2 نشان داده شده است .

كلاس

عملكرد

PerformanceCounter

ارائه یك  counter خاص كه شامل اطلاعاتی نظیر نام counter و نوع داده ئی است كه می بایست ثبت گردد .

PerformanceCounterCategory

یك گروه counter را  كه شامل یك و یا چندین counter است ، مشخص می نماید .

CounterCreationData

ارائه داده مورد نیاز برای ایجاد یك counter جدید .

CounterSample

ارائه مجموعه ای از اطلاعات ثبت شده توسط counter .
در این رابطه یك RawValue ( شماره ثبت شده ) ، یك TimeStamp ( زمانی كه مقدار ثبت شده است ) و اطلاعات اضافه ای در رابطه با نوع counter و نحوه خواندن آن را ارائه می نماید .

جدول 2 : لیست برخی كلاس های دات نت برای كار با Performance counter

مثال : نمایش ظرفیت آزاد حافظه فیزیكی در یك صفحه وب
در كد فوق ، ظرفیت آزاد حافظه فیزیكی بر حسب مگابایت در صفحه وب نمایش داده می شود . برای انجام این كار ، در ابتدا یك نمونه از كلاس PerformanceCounter به همراه نام گروه Memory و counter با نام Available MBytes  ایجاد شده است . برای ایجاد یك نمونه از كلاس PerformanceCounter از كد زیر استفاده شده است .

 Dim perfFreeMem as New PerformanceCounter("Memory", "Available MBytes")

بدین ترتیب یك شی با نام perfFreeMem ایجاد كه  Performance counter  مورد نظر را ارائه می نماید . برای خواندن مقدار جاری counter از متد  NextValue استفاده می گردد تا مقدار بعدی Performance counter را برگرداند . با نسبت دادن مقدار برگردانده شده به خصلت Text كنترل سرویس دهنده Label ، امكان مشاهده آن در خروجی فراهم می گردد .

<%@ Import Namespace = System.Diagnostics %>
<script runat="server">
  sub Page_Load(sender as Object, e as EventArgs)
     Dim perfFreeMem as New PerformanceCounter("Memory", "Available MBytes")
     lblFreeMem.Text = perfFreeMem.NextValue()
  end sub
</script>

Free Memory (in MB):
<asp:Label id="lblFreeMem" runat="server" />

مراحل انجام كار در مثال فوق به شرح زیر است :

  • مرحله اول : استفاده از namespace با نام System.Diagnostics در ابتدای برنامه

  • مرحله دوم : ایجاد و مقداردهی مناسب یك نمونه از كلاس PerformanceCounter تا قادر به خواندن counter با نام Available MBytes از گروه Memory  باشد .

  • مرحله سوم : نسبت دادن مقدار برگردانده شده توسط متد NextValue به خصلت Text كنترل سرویس دهنده label با نام lblFreeMem

در بخش چهارم به بررسی امكانات caching  در ASP.NET 2.0 خواهیم پرداخت .

 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


درباره وبلاگ

سلام من آرش کاکاوند دانشجوی رشته کامپیوتر هستم و ورود شما رابه دنیای aspخوش امدمیگم.حتما نظر بدین تا من کارم رو بهتر ادامه بدم

مدیر وبلاگ : ارش کاکاوند
مطالب اخیر
آرشیو وبلاگ
پیوندهای روزانه
نویسندگان
صفحات جانبی
نظرسنجی
شما کدام یک از برنامه های زیر را برای طراحی وب انتخاب می کنید؟








برچسبها
جستجو

آمار وبلاگ
کل بازدید :
بازدید امروز :
بازدید دیروز :
بازدید این ماه :
بازدید ماه قبل :
تعداد نویسندگان :
تعداد کل پست ها :
آخرین بازدید :
آخرین بروز رسانی :