کنترل عملکرد اپلیکیشن های NET. با استفاده از Performance Optimization

جمعه 20 آذر 1394

بهینه سازی عملکرد اپلیکیشن بسیار اهمیت دارد و به عوامل متعددی مانند معماری اپلیکیشن، طراحی و روش پیاده سازی آن (نوع کد نویسی) بستگی دارد. قبل از هرگونه اقدامی ابتدا باید ناحیه ی مورد نظر برای بهبود را مشخص کنیم و تغییرات را تنها بر اساس نیاز های خود اعمال کنیم .

کنترل عملکرد اپلیکیشن های NET. با استفاده از Performance Optimization

قبل از شروع بررسی کارایی برای هر نوع اپلیکیشن، به درک برخی نیازهای اساسی و پایه احتیاج است. این موضوع همیشه به نیازمندی های تجارت و کسب وکار بستگی دارد که معیار مشتری چیست؟ این نیازمندی ها NFR نامیده می شوند( نیازهای غیر کاربردی) .

یک سناریو به این صورت وجود دارد که وقتی کلاینت می گوید "عملکرد برنامه بسیار ضعیف است" این خود یک وضعیت وخیم است که توسعه دهندگان آن را به راحتی و به تنهایی درک نمی کنند. چرا که به عنوان یک توسعه دهنده می خواهند برخی حالت ها مانند اینکه بارگذاری جاری که برنامه می تواند داشته باشد چیست؟ را داشته باشد و یا اینکه بارگذاری مورد انتظار که مشتری می خواهد آن را ببیند چیست؟ برای همین به ابزار به خصوصی نیاز است و بر اساس اندازه گیری های ابزار می توان کار را شروع کرده و اقدام مناسب را انجام دهند.

پیش زمینه

سوالاتی که به نظر می آیند به این صورت است که چطور می توان بارگذاری جاری برنامه موجود را کنترل کرد پس ما آن ها را به صورت مرحله به مرحله توضیح می دهیم.

عملکرد برنامه می تواند بر اساس چهار معیار زیر اندازه گیری شود:

زمان پاسخ(Response time): مدت زمان بین ارسال درخواست کاربران و نشان دادن پاسخ از طریق سیستم می باشد، به عبارت دیگر اختلاف زمان بین HTTPRequest ارسال شده و HTTPResponse دریافت شده در کلاینت پایانی می باشد.

توان عملیاتی(Throughput): تعداد کل درخواست هایی است که سرور می تواند در هر ثانیه مدیریت کند. به عنوان مثال 1000 تراکنش می تواند در هر ثانیه مدیریت کند.

استفاده از منابع(Resource Utilization): هزینه استفاده از منابع است که بر اساس سرور و منابع شبکه محاسبه می شود. منابعی که در طول پردازش درخواست مصرف می شوند شامل موارد زیر می باشد:

CPU

حافظه

دیسک I/O

شبکه I/O

حجم کار(Workload): به این معناست که چه تعداد برنامه بارگذاری شده توسط کاربر را می توان روی سرور مدیریت کنند. دو نوع بارگذاری توسط کاربران می تواند انجام شود؛ بارگذاری کاربران به طور همزمان و بارگذاری توسط کاربران جاری

کاربران به طور همزمان: اتصالات فعال با یک برنامه مشابه دارند.

کاربران جاری: سایت را دقیقا در یک لحظه بازدید می کنند.

برای بررسی عملی این موضوع، ما از آزمون عملکرد Visual Studio برای یک برنامه استفاده کردیم و نتایج را به طور آسان و قابل فهم  برای توسعه دهندگان دات نت بررسی ارائه کرده ایم. شما می توانید هرنوع ابزار دیگری مانند Load Runner، jMiter و غیره را استفاده کنید.

ایجاد تست عمکرد(Create Performance Test)

ابتدا بررسی عملکرد وب را بر اساس اپلیکیشن به صورت مرحله به مرحله توضیح می دهیم:

مرحله 1: URL مربوط به وب سایت را که در local machine وجود دارد کپی می کنیم (مانند http://localhost:16260/Account/Login )، توجه داشته باشید که تمام مراحل و داده های ورودی که نیاز است در طول آزمون عملکرد گرفته شوند، باید ضبط شوند.

مرحله 2: Visual Studio را باز کرده و یک پروژه جدید از نوع Web Performance and Load Test Project، به صورت زیر ایجاد کنید:

مرحله 3: فایل website را باز کرده و  Add Recording را انتخاب کنید. به طور مشابه می توانید بر روی فایل وب سایت راست کلیک کرده و Add Recording را انتخاب کنید.

این کار Internet Explorer را باز کرده و یک نوار ابزار در سمت چپ ایجاد خواهد کرد:

مرحله 4: بر روی دکمه Record کلیک کرده و URL مورد نظر را در مرورگر paste کنید و برنامه وب را اجرا کرده و قابلیت های مورد نیاز را استفاده کنید. این کار ضبط تمام جزییات HTTPRequest و HTTPResponse، شامل داده های داینامیک (فیلدهای ورودی) را شروع می کند. بعد از کامل شدن ضبط می توانید تست عملکرد وب را در ادیتور تست عملکرد وب اپلیکیشن به صورت لیستی از URL ها مشاهده کنید.

ویرایش در این محیط می تواند انجام شود:

ویرایش آزمون عملکرد(Performance Test)

مرحله 1: فایل website را باز کرده و می بینید که در آن لیستی از URL های درخواست شده وجود دارند (درخت درخواست ها نامیده می شود).

مرحله 2: یک نوع URL را انتخاب کرده و خصوصیت های آنها را بررسی کنید( همانطور که در شکل نشان داده شده است). این کار خصوصیت های مرتبط با HTTPRequest و HTTPResponse را نشان می دهد. توجه داشته باشید که زمان برای این درخواست عددی بزرگتر از صفر می باشد. این تعداد ثانیه هایی است که شما قبل از فرستادن دومین درخواست می گیرید. به این معنا که اگر شما درخواست اول را در 01:01:10 و درخواست دوم را در 01:01:20 فرستاده باشید، این مقدار 10 ثانیه خواهد بود. در تصویر بالا می توانید درخواست ها را برای صفحه login بعد از احراز هویت موفق در مسیر dmin/Default.aspx ببینید.

مرحله 3: برای تغییر مقدار Think Time بر روی Set Request Details کلیک کرده، پنجره ای باز خواهد شد که برای درخواست و تنظیم مقادیر 1 می باشد و می پرسد که آیا می خواهید آن را برای هر درخواست قرار دهید یا خیر.

در اینجا می توانید مقادیری که در زیر ذکر شده را تنظیم کنید:

Reporting names: این مقدار آن را برای شناسایی درخواست های وب مشخص در نتایج آزمون عملکرد وب را ایجاد می کند و زمانی که شما گزارشات Excel را ایجاد می کنید.

  Think times: مقدار زمان تاخیر مصنوعی ایجاد شده توسط انسان بین درخواست های وب می باشد.

(Response time goals) اهداف زمان پاسخ: دوم شما می خواهید اهداف خود را برای زمان پاسخ روی یک درخواست وب تنظیم کنید. این بسیار مهم است که بخواهید  بررسی کنید فرایند صفحه شما در یک دوره زمانی مشخص با موفقیت انجام شده یا خیر.

مرحله 4: یک URL را انتخاب کرده و Form Post Parameters را expand کنید. در اینجا می توانید پارامترهای درخواست شده و همچنین مقدار URL مربوط به Expected HTTP Status Code را فراهم کنید. مثل اینکه اگر فکر می کنید که باید استثنایی در سمت سرور و بر اساس پارامتر مشخص وجود داشته باشد، پس باید پاسخ سرور را برای 500 یا هر چند تعداد پاسخ HTTP ارائه کنید.

همچنین به غیر از این می توانید قوانین اعتبارسنجی و  Extraction را مشخص کنید مانند اینکه Web application توسط اعتبار سنجی تگ ها، متن یا صفت های موجود روی آن صفحه ای کار می کند که توسط درخواست کننده برگردانده می شود. .

در ادامه زمانی که تست اجرا می شود، از پارامترهای عملکرد برای تمام درخواست های وب استفاده خواهد کرد.

اجرا و تجزیه و تحلیل نتایج تست

مرحله 1: در ادیتور Web Performance Test مربوط به، گزینه Run Test را از روی نوار ابزار انتخاب کنید ( همانطور که در شکل بالا نشان داده شده است). در اینجا پردازش تمام درخواست های وب را  که در طول مدت recordings با تنظیمات پارامترهای آپدیت شده انجام داده اید، مشاهده می کنید.

مرحله 2: در پنجره نمایش نتایج تست، اگر تیک سبز باشد، یعنی تمام موارد به خوبی انجام شده و این همان نتایجی است که شما انتظار داشته اید، اما اگر قرمز باشد معلوم است تعدادی مسئله و مشکل در نتایج وجود دارد و انتظاراتی که از نتایج داشتید با شکست مواجه شده اند.

مرحله 3: حالا هدف پاسخ را برای مقادیر واقع بینانه تر تغییر دهید و می بینید که چگونه صفحه شما می تواند به هدف خود برسد. در اینجا ما هدف پاسخ را برای 1 ثانیه تنظیم می کنیم.

مرحله 4: performance test را دوباره اجرا کنید و نتایج را ببینید. در اینجا مشاهده می کنید که با شکست مواجه شده و جزییات خطاها را می توانید ببینید، test case را در پنجره Test Results Viewer انتخاب کرده بعد راست کلیک و سپس View Test Results Details را انتخاب کنید. در اینجا می توانید شرح جزییات خطاها را ببینید مثلا میبینید که مشکل دقیقا کجا اتفاق افتاده و دلیل آن چه بوده است.

آموزش سی شارپ

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان
  • C#.net
  • 1k بازدید
  • 3 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید