مانیتورینگ کارایی برنامه های کاربردی (Application Performance Monitoring)
مانیتورینگ کارایی برنامه (Application Performance Monitoring) نامی است که به استفاده از فناوری برای نظارت، تعمیر، به روز رسانی و/یا بهینه سازی سیستم ها در یک سازمان داده می شود. نرم افزار مانیتورینگ برنامه از اندازه گیری زمان پاسخ و سایر تعاملات مؤلفه و منابع استفاده می کند تا به مدیریت پایداری کلی و قابلیت استفاده نرم افزار در حوزه کاری خود کمک کند.تنظیم کارایی برنامه های کاربردی جهت بهبود کارایی آن ضروری است. این موارد شامل تنظیم کارایی پایگاه داده ها، وب سرورها، سرورهای برنامه، توازن بار، فایل سرورها و موارد دیگر میباشد. در این مقاله برنامه کاربردی را از منظر مصرف منابع زیر بررسی خواهیم کرد: پردازنده مرکزی، حافظه اصلی، سیستم فایل، دیسک ها و شبکه.
محیط های برنامه شامل عناصر و اجزای سازنده متعددی است. برای افرادی که کارایی سیستم را بررسی میکنند، همچون مدیران سیستمها، پیکربندی برنامه جهت استفاده بهینه از منابع سیستم، ارزیابی نحوه استفاده برنامه از سیستم و تجزیه و تحلیل آسیبهای رایج، امری ضروری است.
مبانی مانیتورینگ کارایی برنامههای کاربردی
قبل از اینکه وارد عمق مبحث پایش کارایی برنامههای کاربردی شویم، لازم است با نقش برنامه و ویژگی های آن و همینطور اکوسیستم جاری آشنا باشید. این امر زمینه ای را برای شما فراهم می سازد تا بتوانید فعالیت برنامه را درک نمایید. همچنین به شما این فرصت را می دهد تا درباره مشکلات رایج کارایی سیستم و تنظیمات آن، مطلع شوید. برای یادگیری این زمینه، لازم است به سوالات زیر پاسخ دهید:
کارکرد : نقش برنامه کاربردی چیست؟ آیا یک دیتابیس سرور، وب سرور، سرور توازن بار است؟
عملیات : برنامه کاربردی چه نوع درخواستی را خدمت رسانی میکند، و یا چه عملیاتی را انجام میدهد؟ پایگاه داده ها وظیفه خدمت رسانی به عبارات جستجو و (دستورات) و وب سرورها مسئول ارائه خدمات به درخواست های HTTP میباشد. این را می توان جهت اندازه گیری میزان بار و همچنین برای برنامه ریزی ظرفیت سیستم اندازه گیری کرد.
حالت پردازنده : آیا برنامه به عنوان نرم افزار سطح کاربر یا سطح هسته پیاده سازی شده است؟ اکثر برنامه ها در سطح کاربر هستند که به صورت یک یا چند فرآیند اجرا می شوند ، اما برخی از آنها به عنوان سرویس های هسته (به عنوان مثال NFS) اجرا می شوند.
پیکربندی: چگونه برنامه پیکربندی شده است و چرا؟ این اطلاعات را می توان در یک فایل پیکربندی یا از طریق ابزارهای مدیریتی یافت. بررسی کنید که آیا پارامترهای قابل تنظیم مربوط به کارایی تغییر کرده است، از جمله اندازه بافر ، اندازه حافظه پنهان، موازی کاری (فرآیندها یا رشته ها) و گزینه های مشابه دیگر.
معیارها: معیارهای کارایی برنامه کاربردی باید مشخص شده باشد، مانند نرخ عملیات؟ ممکن است این معیارها توسط ابزارهای همراه یا شخص ثالث، از طریق درخواست های API یا پردازش فایل های ثبت وقایع (logs) ارائه شوند.
لاگ ها: برنامه چه عملیاتی را ثبت میکند؟ کدام لاگ ها برای ثبت، فعال هستند؟ کدامیک از معیارهای کارایی از طریق لاگ در دسترس است؟ برای مثال MYSQL، جستجوهای کند را ثبت می کند. slow query log که در این فایل، اطلاعات ارزشمند و جزئیات بسیاری در مورد کارایی برخی عبارات جستجو وجود دارد.
نسخه: آیا نسخه برنامه، نهایی می باشد؟ آیا مشکلات کارایی یا بهبودهایی در نسخه های آخر برنامه اعمال شده است؟
باگ ها: آیا پایگاه داده برای برنامه اشکالی ایجاد کرده است؟ چه باگ هایی برای نسخه جاری برنامه وجود دارد؟ اگر در حال حاضر اشکالات کارایی وجود دارد، آنها را در پایگاه داده و هرچیزی که در آن مشارکت دارد، جستجو و بازبینی کنید.
کارشناسان: چه کسی مسئولیت فنی کارایی برنامه را دارد؟ نام های آنها را یادداشت کنید تا بتوانید از طریق آنها مستندات را تهیه نمایید.
صرفنظر از منبع برنامه، شما درصدد درک برنامه در سطح بالایی هستید، اینکه برنامه چه کاری انجام می دهد و چگونه کار می کند. یک منبع بسیار مفید در این زمینه، یک Functional Diagram از برنامه های داخلی است.
اهداف
یک هدف کارایی (performance goal)، اهداف کار در تجزیه و تحلیل کارایی را فراهم میسازد. بدون هدف مشخص، تجزیه و تحلیل کارایی، خطر تبدیل شدن به یک ماهیگیری تصادفی را دارد.
برای کارایی برنامه، شما می توانید با این که برنامه چه عملیاتی را انجام می دهد و هدف کارایی برای آن عملیات چیست، شروع کنید. هدف ممکن است موارد زیر باشد:
تاخیر : زمان پاسخ کم برنامه
توان عملیاتی : نرخ بالای عملیات برنامه یا نرخ ارسال داده
بهره برداری منابع : کارآمدی برنامه تحت یک بار کاری
بهتر است این موارد با استفاده از معیارهایی نظیر کیفیت خدمات و الزامات تجاری، کمّی شوند. برای مثال موارد زیر را در نظر بگیرید:
میانگین تاخیر برای درخواست برنامه کمتر از 5 میلی ثانیه باشد
95% درخواست ها تاخیری کمتر از 100 میلی ثانیه داشته باشند
درخواست هایی که فراتر از میزان تاخیر 1000میلی ثانیه هستند، حذف شوند.
حداکثر توان عملیاتی هر برنامه مستقر برروی سرور 10000 درخواست در ثانیه باشد.
میانگین بهرهوری دیسک برای 10000 درخواست برنامه، کمتر از 50% باشد.
پس از انتخاب هدف، شما می توانید برروی محدودکننده های آن هدف کار کنید. مثلا برای تاخیر، یک نمونه محدودکننده میتواند ورودی/خروجی دیسک یا شبکه باشد. برای توان عملیاتی نیز ممکن است میزان استفاده از CPU باشد.
برای اهداف مبتنی بر توان عملیاتی توجه داشته باشید که همه عملیات از نظر عملکرد یا هزینه برابر نیستند. اگر هدف نرخ مشخصی از عملیات باشد، تعیین نوع عملیات نیز ممکن است مهم باشد. این امر ممکن است یک توزیع براساس بار کاری مورد انتظار یا اندازه گیری شده باشد. در بخش بعدی نحوه و انواع مانیتورینگ برروی سیستم ها را بررسی خواهیم کرد.
مانیتورینگ (پایش) سیستمهای توزیع شده
در این بخش لازم است با تعاریف زیر آشنا شویم:
مانیتورینگ یا پایش : عبارت است از جمع آوری، پردازش، تجمیع و نمایش داده های کمّی در زمان واقعی مربوط به سیستم مانند تعداد و انواع پرسوجو، تعداد و انواع و خطا، زمان پردازش آنها و طول عمر سرور.
مانیتورینگ White-Box : عبارت است از مانیتورینگ براساس معیارهای نمایش داده شده از طریق داخل سیستم از جمله داده های فایل لاگ، رابط های کاربری مانند رابط گرافیکی، پروفایلینگ ماشین مجازی جاوا یا آمار داخلی یک کنترل کننده HTTP.
مانیتورینگ Black-Box: عبارت است از مشاهده داده های معیارهای خارج سامانه همانند تعداد بازدید کنندگان یک وب سایت.
مانیتورینگ می تواند انواع مختلفی از داده ها را شامل شود، از جمله معیارها، ثبت لاگ، ثبت وقایع ساختاری، ردیابی توزیع شده و درون نگری رویدادهای سیستم.
در ابتدایی ترین سطح، مانیتورینگ این امکان را به شما می دهد تا از امکانات و اطلاعاتی که سیستم در اختیار شما قرار می دهد، مطلع شوید. این مورد برای شما یک نیاز اصلی است تا قادر باشید در مورد سلامت خدمات و تشخیص صحت و سلامت آنها قضاوت کنید.
داشبورد: معمولا یک برنامه تحت وب است که خلاصه ای از معیارهای اصلی یک سرویس را ارائه میدهد. یک داشبورد ممکن است دارای فیلتر، انتخابگر و غیره باشد اما از قبل ساخته شده است تا مهمترین معیارها را برای کاربران خود نشان دهد. داشبورد همچنین ممکن است اطلاعات تیم، اطلاعات فهرست اشکالات با اولویت بالا و اطلاعات مسئولین سیستم باشد.
شرکت مهندس پیشگان آزمون افزار یاس، خدمات زیر را در حوزه ارزیابی و پایش کارایی نرم افزار ارائه می دهد:
آموزش روشهای ارزیابی کارایی سامانه های نرم افزاری از طریق آزمونهای بار و فشار
اجرای آزمونهای بار و فشار برروی سامانه های نرم افزاری
تهیه و آموزش ابزارهای تست پرفورمنس (تست بار و فشار) همچون WPLT و LoadTest
پایش و مانیتورینگ شاخص های کارایی سامانه های نرم افزاری از طریق ابزارهای مدیریت کارایی همچون AppDynamicsو DynaTrace
نویسنده : شرکت مهندس پیشگان آزمون افزار یاس