پس از ارائه توضیحات مقدماتی ارزیابی کارایی سیستم، در این بخش در نظر داریم به بررسی اهداف ارزیابی کارایی سیستمها بپردازیم.
اهداف ارزیابی کارایی (Objectives)
- انتخاب تکنیکهای ارزیابی، متریکهای کارایی و workload مناسب برای یک سیستم.
- هدایت صحیح اندازهگیری کارایی.
- استفاده از تکنیکهای صحیح آماری برای مقایسه چندین جایگزین.
- بدست آوردن بیشترین اطلاعات با کمترین تلاش.
- انجام صحیح شبیهسازی.
- استفاده از مدلهای ساده صف برای تحلیل عملکرد سیستم.
- مدلسازی یک سیستم با استفاده از نرخ سرویس و نرخ بار ورودی.
انتخاب تکنیکهای ارزیابی، متریکهای کارایی و workload مناسب برای یک سیستم
تکنیکها شامل اندازهگیری (measurement، شبیهسازی (simulation) و مدلسازی (analytic modeling) است.
زمانی که یک سیستم به صورت واقعی در اختیارمان قرار بگیرد به عنوان مثال یک گوشی موبایل برای تست پخش تصویر، یا کیفیت انجام بازی و … در اختیارمان است. در این حالت از تکنیک اندازهگیری یا measurement استفاده میشود.
زمانی که به هر دلیلی مانند مسائل مالی تجهیز در اختیارمان نباشد و نتوانیم فرآیند measurement را انجام دهیم به سراغ شبیهسازی میرویم. در این حالت در محیطهای شبیهسازی مانند opnet، omnet، omnet++، ns3، matlab و … میتوان سناریو مورد نظرمان که نیاز به خریداری تجهیزات خاص دارد را پیادهسازی کنیم.
دسته سوم از ابزارهایی که در ارزیابی کارایی داریم مدل سازی با ریاضیات است. به عنوان مثال در بحث SDN یا NFV ایده جدیدی داریم که میخواهیم آن را مورد ارزیابی قرار دهیم. به دلیل جدید بودن ایده امکان ارزیابی از طریق شبیهسازی وجود ندارد چون نمونه آن وجوند ندارد. در این صورت مدلسازی سیستم از طریق فرمولهای ریاضی به کار خواهد آمد.
در برخی مواقع میتوانیم از ترکیبی از تکنیکهای عنوان شده نیز استفاده کنیم.
متریکها
متریک چیزی است که میخواهم در فرآیند ارزیابی آن را بهتر کنیم. به عنوان مثال در دنیای شبکه متریکهای معروفی که داریم شامل delay، throughput، jitter، security و … است.
اینکه بخواهیم همه چیز را بهتر کنیم یک جمله بی معنی از نقطه نظر مهندسی است. چه چیزی را در شبکه، در نرمافزار یا سختافزار میخواهیم بهبود ببخشیم؟ حتی در پایان نامهها ایرادی ندارد از 10 متریک پروژه خود فقط 5 پارامتر را بهبود ببخشید.
ورودی یا Workload
در ارزیابی باید مشخص کنید ورودی از چه جنسی و به چه تعدادی باید باشد. متانسب با این دو پارامتر نوع تست متفاوت میشود.
به عنوان مثال فرض کنید برنامههایی داریم که کارایی آنها به شدت وابسته بر تجهیزات ذخیرهسازی. حال در خرید کنترلر هارد و هارد بین دو برند مختلف که میخواهیم ماندهایم و میخواهیم آنها را با همدیگر مقایسه کنیم. به چه صورت باید این کار را انجام دهیم. آیا از تکنیک measurement استفاده کنیم؟ شبیهسازی یا مدلسازی را به کار ببریم. از چه متریکی استفاده کنیم.
برای شروع ارزیابی باید اطلاعاتی داشته باشیم. به عنوان مثال استفاده برنامه مورد نظر از دستگاه ذخیرهساز و متعلقاتش مانند RAID controller به چه صورت و میزان است. در نتیجه این بررسی یکسری متریک بدست میآید. در قسمت بعدی اطلاعات باید نوع و اندازه workload وارد شده به سیستم را بدانیم.
در مثالی دیگر تصور کنید میخواهیم دو الگوریتم باز ارسال در پروتکل TCP یا دو الگوریتم مرتب سازی را با یکدیگر مقایسه کنیم؟ بازهم برای ارزیابی درگیر سه مولفه توضیح داده شده میشویم.
هدایت صحیح اندازهگیری کارایی
در این بخش نیاز به دو ابزار یا مولفه مهم داریم. فرض کنید میخواهیم یک روتر را ارزیابی کنیم. در ابتدا بایستی بایستی با ابزار اول به میزان مورد نظر ترافیک مصنوعی تولید کنیم. به این ابزار load generator میگوییم. ابزار دوم برای مانیتور کردن دستگاه زیر بار مصنوعی است.
به عنوان مثال تصور کنید میخواهیم کارایی یک شبکه LAN را بررسی کنیم. در ابتدا بایستی load بروی شبکه ایجاد کنیم. یکی از ابزارهای تولید ترافیک نرمافزار iperf است. نمونهای از این تست در تصویر زیر مشخص است.
در مواقعی که نرمافزار یا ابزاری در حوزهای وجود نداشته باشد، مشاهدات و کمیت سنجی محقق میتواند در ارزیابی کارایی کمک کند.
استفاده از تکنیکهای صحیح آماری برای مقایسه چندین جایگزین
از نکاتی که باید در فرآیند تست و ارزیابی وجود دارد این است که نباید به یک بار تست بسنده کنیم. برای تست کافی حداقل 10 بار با حالتهای مختلف باید ارزیابی را انجام دهیم. زمانی که تعداد تست (مثلا 10 بار) انجام دادهایم به یکسری عدد رسیدهایم. نتایج بدست آمده از یک مدل آزمایش باید تفسیر شوند. آیا میانگین گیری کنیم؟ آیا واریانس بگیریم؟ آیا correlation اعداد بدست آمده را حساب کنیم؟ پس مرحله بعد در فرآیند تحقیقات انجام شده، تفسیر نتایج است. هر اقدامی مانند میانگین گیری برای تفسیر انجام شود، بایستی دلیل داشته باشد.
چرا باید چندین بار هر آزمایش انجام شود؟
شاید سیستم آزمایش شده فقط در آن شرایط خوب کار کند. شاید عددسازی انجام شده است. اصولا ارزیابی در حالات مختلف بررسی سیستم در حالت جامع را به ارمغان میآورد.
بدست آوردن بیشترین اطلاعات با کمترین تلاش
در فضای شبیهسازی چه تعداد سناریو باید داشته باشیم؟ خواهیم دید که برای یک پروژه کوچک ارزیابی کارایی مانند تست یک الگوریتم ساده، نزدیک 90 سناریو تست داریم. در کل فرآیند تست و ارزیابی یک فرآیند هزینهبر و زمانبر است.
وجه تمایز دو سیستم لزوما تکنولوژی آن نیست و تست و ارزیابی آن از اهمیت بیشتری برخوردار است.
اما نباید اشتباه کنیم، زیاد شدن بیش از حد سناریوهای تست فقط هزینههای ارزیابی کارایی را چند برابر کرده و در عوض آوردهای هم نخواهد داشت.
برای کاهش دادن منطقی ارزیابیها بهتر است متریکها را اولویت بندی کنیم. به عنوان مثال میگوییم در شبکه برایمان delay و jitter برایمان مهم است. چون نمیخواهیم تعداد آزمایشها خیلی زیاد شود.
انجام صحیح شبیهسازی
در فضای شبیهساز تنظیمات و پارامترهایش بسیار مهم است. تنظیم نامناسب امکان دارد نتیجه کار را بسیار از واقعیت دور کند.