مانیتورینگ کارایی برنامه (Application Performance Monitoring) نامی است که به استفاده از فناوری برای مانیتورینگ، تعمیر، به روز رسانی و/یا بهینه سازی سیستم ها در یک سازمان داده می شود. نرم افزار مانیتورینگ برنامه از اندازه گیری زمان پاسخ و سایر تعاملات مؤلفه و منابع استفاده می کند تا به مدیریت پایداری کلی و قابلیت استفاده نرم افزار در حوزه کاری خود کمک کند.تنظیم کارایی برنامه های کاربردی جهت بهبود کارایی آن ضروری است. این موارد شامل تنظیم کارایی پایگاه داده ها، وب سرورها، سرورهای برنامه، توازن بار، فایل سرورها و موارد دیگر میباشد. در این مقاله برنامه کاربردی را از منظر مصرف منابع زیر بررسی خواهیم کرد: پردازنده مرکزی، حافظه اصلی، سیستم فایل، دیسک ها و شبکه.
محیط های برنامه شامل عناصر و اجزای سازنده متعددی است. برای افرادی که کارایی سیستم را بررسی میکنند، همچون مدیران سیستمها، پیکربندی برنامه جهت استفاده بهینه از منابع سیستم، ارزیابی نحوه استفاده برنامه از سیستم و تجزیه و تحلیل آسیبهای رایج، امری ضروری است.
مبانی مانیتورینگ کارایی برنامههای کاربردی
قبل از اینکه وارد عمق مبحث مانیتورینگ کارایی برنامههای کاربردی شویم، لازم است با نقش برنامه و ویژگی های آن و همینطور اکوسیستم جاری آشنا باشید. این امر زمینه ای را برای شما فراهم می سازد تا بتوانید فعالیت برنامه را درک نمایید. همچنین به شما این فرصت را می دهد تا درباره مشکلات رایج کارایی سیستم و تنظیمات آن، مطلع شوید. برای یادگیری این زمینه، لازم است به سوالات زیر پاسخ دهید:
کارکرد : نقش برنامه کاربردی چیست؟ آیا یک دیتابیس سرور، وب سرور، سرور توازن بار است؟
عملیات : برنامه کاربردی چه نوع درخواستی را خدمت رسانی میکند، و یا چه عملیاتی را انجام میدهد؟ پایگاه داده ها وظیفه خدمت رسانی به عبارات جستجو و (دستورات) و وب سرورها مسئول ارائه خدمات به درخواست های HTTP میباشد. این را می توان جهت اندازه گیری میزان بار و همچنین برای برنامه ریزی ظرفیت سیستم اندازه گیری کرد.
حالت پردازنده : آیا برنامه به عنوان نرم افزار سطح کاربر یا سطح هسته پیاده سازی شده است؟ اکثر برنامه ها در سطح کاربر هستند که به صورت یک یا چند فرآیند اجرا می شوند ، اما برخی از آنها به عنوان سرویس های هسته (به عنوان مثال NFS) اجرا می شوند.
پیکربندی: چگونه برنامه پیکربندی شده است و چرا؟ این اطلاعات را می توان در یک فایل پیکربندی یا از طریق ابزارهای مدیریتی یافت. بررسی کنید که آیا پارامترهای قابل تنظیم مربوط به کارایی تغییر کرده است، از جمله اندازه بافر ، اندازه حافظه پنهان، موازی کاری (فرآیندها یا رشته ها) و گزینه های مشابه دیگر.
معیارها: معیارهای کارایی برنامه کاربردی باید مشخص شده باشد، مانند نرخ عملیات؟ ممکن است این معیارها توسط ابزارهای همراه یا شخص ثالث، از طریق درخواست های API یا پردازش فایل های ثبت وقایع (logs) ارائه شوند.
لاگ ها: برنامه چه عملیاتی را ثبت میکند؟ کدام لاگ ها برای ثبت، فعال هستند؟ کدامیک از معیارهای کارایی از طریق لاگ در دسترس است؟ برای مثال MYSQL، جستجوهای کند را ثبت می کند. slow query log که در این فایل، اطلاعات ارزشمند و جزئیات بسیاری در مورد کارایی برخی عبارات جستجو وجود دارد.
نسخه: آیا نسخه برنامه، نهایی می باشد؟ آیا مشکلات کارایی یا بهبودهایی در نسخه های آخر برنامه اعمال شده است؟
باگ ها: آیا پایگاه داده برای برنامه اشکالی ایجاد کرده است؟ چه باگ هایی برای نسخه جاری برنامه وجود دارد؟ اگر در حال حاضر اشکالات کارایی وجود دارد، آنها را در پایگاه داده و هرچیزی که در آن مشارکت دارد، جستجو و بازبینی کنید.
کارشناسان: چه کسی مسئولیت فنی کارایی برنامه را دارد؟ نام های آنها را یادداشت کنید تا بتوانید از طریق آنها مستندات را تهیه نمایید.
صرفنظر از منبع برنامه، شما درصدد درک برنامه در سطح بالایی هستید، اینکه برنامه چه کاری انجام می دهد و چگونه کار می کند. یک منبع بسیار مفید در این زمینه، یک Functional Diagram از برنامه های داخلی است.
شرکت مهندس پیشگان آزمون افزار یاس، خدمات زیر را در حوزه تست نرم افزار ارائه می دهد:
- تست عملکردی نرم افزارهای تحت وب، دسکتاپ، موبایل و نهفته
- تست پرفورمنس (تست بار و فشار) سامانه های نرم افزاری
- تست امنیت و نفوذ سامانه های نرم افزاری
- برون سپاری تست و تضمین کیفیت نرم افزار
- ممیزی کیفیت نرم افزارهای تهیه شده
- ارائه مشاوره در حوزه تست و تضمین کیفیت نرم افزار
- ارائه استاندارد، متدولوژی، ابزار و چک-لیست در حوزه تست نرم افزار
- تهیه و آموزش ابزارهای تست عملکردی همچون SOATest و Ranorex
- تهیه و آموزش ابزارهای تست پرفورمنس (تست بار و فشار) همچون WPLT و LoadTest
- تهیه و آموزش ابزارهای تست امنیت و نفوذ همچون WebInspect و AppScan
- راه اندازی ابزارهای تحلیل ایستا (مرور سورس کد) همچون JTest، dotTest، C++Test، Sonar و Checkmarx
- راه اندازی ابزارهای تحلیل پویا (پروفایلر) همچون Yourkit Java Profiler و Yourkit dotNet Profiler
- مانیتورینگ شاخص های کارایی سامانه های نرم افزاری از طریق ابزارهای مدیریت کارایی همچون AppDynamics