افزايش كارآئی برنامه های وب در ASP.NET 2.0 New Page 1



ساير




 

 

 

SAKHA RAVESH CO.

 ا مروز

 دوشنبه  4  ارديبهشت  1396  2017  Apr.  24   Monday ToDay
صفحه اصلی  مقالات نکته هادايره المعارف خودآموزها | تازه ها خود آزمون ها    
  نسخه قابل چاپ  

    5 4 3 2 1 

 عنوان

 نويسنده

  مشاهده

 تعداد آراء

 امتياز

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

 مديريت وب

8859

7

4.4

با توجه به جایگاه داده در عصر حاضر و  لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر  روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و  خدمات خود  را از طریق  سایت www.fabak.ir  به مخاطبان محترم عرضه می نماید

 

افزايش كارآيی برنامه های وب در ASP.NET 2.0

افزايش كارآئی برنامه های وب در ASP.NET 2.0 (بخش سوم)
در بخش های اول  و دوم به مجموعه ای از نكات اشاره گرديد كه رعايت آنها در زمان طراحی می تواند زمينه پياده سازی يك برنامه وب كارآ را فراهم نمايد . در اين بخش به بررسی امكانات و ابزارهای موجود برای تست برنامه های وب خواهيم پرداخت .
يكی از مسائل مهم در ارتباط با برنامه های وب ، عدم تست آنها با شرايط مشابه و يا  نزديك به محيط واقعی است . در اين راستا می توان از نرم افزارها و يا ابزارهای مختلفی استفاده كرد تا بتوان عملكرد و سرويس دهی يك برنامه وب  را قبل از زير بار رفتن واقعی مشاهده و بررسی نمود .
برای قضاوت در خصوص  تلاش های انجام شده در ارتباط با بهبود كارآئی يك برنامه وب ، می بايست  قادر به سنجش كارآئی آن در عمل باشيم .  در مواردی كه كارآئی يك برنامه كند و  نااميد كننده است  ، می بايست بر اساس اطلاعات كافی اقدام به شناسائی  گره ها و عوامل تاثير گذار بر روی كارآئی برنامه های وب نمائيم تا از اين رهگذر بتوان مشكل و يا مشكلات را برطرف و يك برنامه وب كارآ را آماده استفاده عملياتی و نهائی كرد .
شركت مايكروسافت در اين رابطه ابزارها و برنامه های متعددی را ارائه نموده است كه در ادامه به بررسی آنها خواهيم پرداخت .

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 خواهيم پرداخت .



جستجو

مقالات                 
دايره المعارف       
دوره های آموزشی


 

 

مشاهده گروه ها



              

 

 تهيه شده در شرکت سخا روش -  1382