• مانیتورینگ کارایی برنامه های کاربردی (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


    نویسنده : شرکت مهندس پیشگان آزمون افزار یاس


  • معرفی راهکار مانیتورینگ کارایی برنامه (APM)

    معرفی راهکار مانیتورینگ کارایی برنامه (APM)

    خلاصه

    برنامه های کاربردی هر سال پیچیده‌تر می‌شوند. اما تیم‌ها چگونه باید پیچیدگی نصب محیط برنامه خود را مدیریت کنند؟ نرم افزار مانیتورینگ کارایی APM برای مشاهده کامل سلامت برنامه های شما ضروری است و به شما امکان می دهد تا به سرعت علت یک مشکل را شناسایی کنید.

    مروری سریع بر نرم افزار مانیتورینگ کارایی APM

    نرم افزار مانیتورینگ کارایی برنامه به شما توانایی ردیابی، اندازه گیری، نظارت و بهینه سازی سلامت کل اکوسیستم برنامه را می دهد. با این دید جامع، کسب‌وکارها می‌توانند از مشکلات کارایی که در غیر این صورت تجربه کاربر نهایی را به خطر می‌اندازد، جلوتر باشند.

    بسیاری از تیم های فناوری اطلاعات از نرم افزار مانیتورینگ کارایی APM برای تشخیص ناهنجاری در کارایی برنامه استفاده می کنند: برای شناسایی علت اصلی مشکلاتی مانند تأخیر، قطع و سایر چالش‌های دسترس پذیری. از لحاظ تاریخی، ابزارهای APM به تیم‌های فناوری اطلاعات این توانایی را داده‌اند که با کمک به ایجاد معیارهای کارایی پایه برای بخش‌های مختلف محیط شما، به این مشکلات فائق آیند. با این حال راه‌حل‌های مدرن، APM را یک قدم جلوتر می‌برد و شما را قادر می‌سازد تا رویکردی فعال برای مدیریت کارایی برنامه داشته باشید.

    چرا از نرم افزار مانیتورینگ کارایی برنامه استفاده کنیم؟

    نرم افزار مانیتورینگ کارایی APM مجموعه ای از ابزارها را ارائه می دهد که زندگی مدیران فناوری اطلاعات را آسان تر می‌سازد. قابلیت‌های APM به شما این امکان را می‌دهد که مشکلات را به سرعت و کارآمد شناسایی و حل کنید، قبل از اینکه مشکلات برروی کاربر نهایی تأثیر بگذارند. این ابزارها با ارائه داده‌ها و معیارهای کلیدی در مورد سلامت برنامه، بررسی خودکار کارایی، و حل فعال مشکلات در زمان وقوع، در زمان تیم‌های برنامه صرفه‌جویی می‌کنند. در اینجا به برخی از مزایای استفاده از نرم افزار مانیتورینگ کارایی APM اشاره می کنیم.

    معرفی راهکار مانیتورینگ کارایی برنامه

    از پیچیدگی های افزایش یافته در محیط های IT جلوتر باشید

    همانطور که قبلاً اشاره کردیم، نیازهای برنامه ها همیشه در حال تغییر است - چه با نوآوری در هوش مصنوعی برای کمک به مدیران در جمع آوری داده های برنامه به صورت 24/7، و چه در تقویت امنیت برنامه برای شناسایی تهدیدها در زمان واقعی. نتیجه، افزایش پیچیدگی است. این امر باعث می‌شود نرم‌افزار APM برای حفظ سلامت برنامه‌ها و فرآیندهای خودکار مانند یکپارچه‌سازی مداوم و تحویل مداوم (CI/CD) ضروری باشد.

    نظارت و اندازه گیری کارایی بدون توجه به مکان و زمان

    نرم‌افزار APM به تیم‌ها نگاهی جامع به نحوه مدیریت کارایی برنامه‌ها می‌دهد، بدون توجه به اینکه در کجای دنیا از آنها استفاده می‌شود یا روی چه نوع دستگاهی. این بدان معناست که دیگر نگران تجربه تلفن همراه کاربر نهایی خود نباشید. فرض کنید مشتریان شما در افزودن اقلام به سبد خرید گوشی خود با مشکل مواجه هستند - این مشکل را می توان به راحتی با استفاده از نرم افزار مانیتورینگ کارایی APM شناسایی و برطرف نمود.

    اطمینان از قابلیت اطمینان برنامه های حیاتی کسب و کار

    یکی از بزرگترین مزایای داشتن نرم افزار مانیتورینگ کارایی APM آن است که می توانید برنامه هایی را که برای تجارت شما مهم هستند نظارت کنید. استفاده از معیارهای کلیدی کسب‌وکار برای اولویت‌بندی بارهای کاری به شما می‌گوید که ابتدا به کدام مسائل بپردازید.

    به عنوان مثال، شرکت‌های تجارت الکترونیکی که به دنبال بهینه‌سازی تجربه دیجیتال در طول فرآیند پرداخت هستند، می‌توانند از APM جهت هوشیار بودن از تنگناها استفاده کنند. با تجزیه و تحلیل و بهینه سازی سلامت محیط خود، تجربیات بی عیب و نقص بیشتری را در قسمت جلوی ارائه خواهید کرد. تیم‌های فناوری اطلاعات همچنین می‌خواهند از راه‌حل‌های مدرن APM بهره‌مند شوند که دیدگاهی از کارایی را از دریچه کسب‌وکار ارائه می‌دهند - این بدان معناست که می‌توانید از تراکنش‌هایی که شما بیشتر به آن‌ها اهمیت می‌دهید، گزارش گرفته و جلوتر از آنها باشید. ساده است: زمان خرابی کمتر و زمان بارگذاری سریعتر برابر است با تراکنش های تجاری بیشتر.

    یک تجربه دیجیتالی لذت بخش را ارائه دهید

    ابزارهای APM در حال ارائه بهترین تجربیات دیجیتال به کاربران نهایی شما هستند. همانطویکه هر شخص فنی به شما خواهد گفت: بدترین راه برای اطلاع از مشکل در برنامه شما، از جانب مشتری است. حتی بدتر؟ پستی در شبکه های اجتماعی که به طور بالقوه می تواند به اعتبار شرکت شما آسیب بزند.

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

    ویژگی های کلیدی نرم افزار مانیتورینگ کارایی برنامه چیست؟

    عیب یابی کارایی

    یک نرم‌افزار جامع APM می تواند به شما کمک کند تعدادی از مشکلات کارایی برنامه را که ممکن است با آن مواجه شوید، عیب‌یابی کنید. این نرم‌افزار بینش‌های کارایی، گزارش‌ها و معیارهایی را ارائه می‌کند تا دید جامعی از سلامت برنامه به شما ارائه دهد. همچنین، نرم افزار مانیتورینگ کارایی APM می تواند به شما کمک کند تا هر گونه مشکل کارایی را به سرعت و کارآمد حل کنید.

    تشخیص در سطح کد

    عیب‌یابی کد خود را که فوری و خودکار هستند، دریافت کنید. ابزارهای APM به عنوان یک سیستم هشدار اولیه برای شناسایی و تشخیص مشکلات عمل می‌کنند و باید با اکثر زبان‌های برنامه نویسی محبوب مانند جاوا و دات نِت کار کنند. این ابزارها با در اختیار گذاشتن تمام داده‌های کاربردی مورد نیاز خود، حتی تا سطح خطوط برنامه‌نویسی ، به شما کمک می‌کنند تا علت اصلی مشکلات را سریع و کارآمد شناسایی کنید.

    معرفی راهکار مانیتورینگ کارایی برنامه

    نظارت بر تراکنشهای تجاری

    تراکنش تجاری اساساً زمانی است که یک کاربر نهایی تراکنش را برای استفاده مورد نظر برنامه شما اجرا می‌کند. آیا می‌خواهید مسیر خرید مشتری را از لحظه ورود به سایت شما تا زمانی که آن را بررسی کرده است، دنبال کنید؟ نرم افزار APM به شما کمک می کند تا با هر تراکنش، دیدی سطح بالا از کارایی کسب و کار خود و همچنین نمای دقیق تری نسبت به هر خرید داشته باشید. از نرم افزار مانیتورینگ کارایی APM برای تعیین میانگین مدت زمان تراکنش، تعداد خطاهایی که مشتریان شما در برنامه با آن مواجه شده اند، و نیز برای تجزیه و تحلیل تراکنش استفاده کنید.

    معرفی راهکار مانیتورینگ کارایی برنامه

    قابلیت مشاهده پایگاه داده

    مشاهده پایگاه داده به ارائه معیارهایی در مورد کارایی و راندمان پایگاه داده شما می‌پردازد و به شما توانایی عیب یابی مسائل مربوط به کارایی را می دهد. معیارهای کارایی APM را در نمونه های پایگاه داده و سرورهای خود جمع آوری کرده و منابع تاخیر و خطاهای سطح سرور را در برنامه خود شناسایی نمایید.

    معرفی راهکار مانیتورینگ کارایی برنامه

    زیرساخت و دید ابری

    با ظهور نرم افزارهای مبتنی بر ابر در حوزه دیجیتال، یک استراتژی موثرِ نظارت بر ابر بسیار مهم است. نرم افزار مناسبِ APM به شما امکان دید کامل را در تمام لایه های زیرساخت، از جمله شبکه و سرورها ارائه می‌دهد. با این نماها، می‌توانید جریان ترافیک به برنامه خود، سلامتی دارایی های مبتنی بر ابر سازمان خود، اتصالات به سرور، داده های خرابی و موارد دیگر را نظارت کنید. ویژگی‌های نظارت ابری APM به شما این امکان را می‌دهد که معیارها را در سطح کد و دانه‌بندی مشاهده کنید.

    معرفی راهکار مانیتورینگ کارایی برنامه

    قابلیت های نرم افزار مانیتورینگ APM چیست؟

    کشف معماری برنامه درحال اجرا، مدل سازی، نمایش

    بینش بی‌درنگ درباره زیرساخت‌های تحویل برنامه شما ضروری است. با کشف، مدل‌سازی و نمایش معماری زمان اجرای برنامه (که به عنوان نظارت از پایین به بالا نیز شناخته می‌شود)، می‌توانید نقشه‌ای از تمام اجزای برنامه خود، از جمله وابستگی‌های خارجی مانندAPIهای شخص ثالث، ایجاد کنید تا نحوه تعامل آنها را ببینید. این قابلیت به شما امکان می‌دهد تا از طریق تصاویر لحظه‌ای از مسیر تراکنش، هر گونه مشکل بین اجزای برنامه خود را به راحتی شناسایی نمایید. همچنین این امکان را به شما می‌دهد تا برای همه گِره‌ها و سرورها در محیط یک برنامه نظارت بالا به پایین داشته باشید.

    معرفی راهکار مانیتورینگ کارایی برنامه

    تشخیص ناهنجاری

    با استفاده از قابلیت‌های یادگیری ماشین خودکار، تشخیص ناهنجاری به شما هشدار می‌دهد که در طول یک تراکنش تجاری، ناهنجاری رخ داده است. تشخیص خودکار ناهنجاری در نرم‌افزار APM از الگوریتمی برای تشخیص هر گونه قرائت غیرعادی برای معیارهای خطا در دقیقه ( EPM) و میانگین زمان پاسخ (ART) استفاده می‌کند. سپس داده‌های مورد سنجش را عادی می‌کند تا اطمینان حاصل شود که همه قرائت‌ها قبل از اطلاع از هرگونه ناهنجاری، دقیق هستند. با دریافت هشدارها در زمان واقعی، می‌توانید به جای از دست دادن زمان برای پیدا کردن مشکل، آماده رسیدگی به هرگونه ناهنجاری در زمان وقوع باشید. با گذشت زمان، الگوریتم می آموزد که چه چیزی رفتار برنامه کاربردی "عادی" را تشکیل می دهد و بر اساس آن محیط شما را پایه گذاری می کند و به کاهش طوفان‌های هشدار کمک می‌کند.

    تجزیه و تحلیل ریشه مشکلات کارایی (RCA)

    این مرحله بعد از اینکه ابزار APM هر گونه ناهنجاری را شناسایی کرد، انجام می‌شود. تجزیه و تحلیل ریشه مشکلات به شما کمک می کند دقیقاً بفهمید که چرا برنامه شما غیرعادی عمل می‌کند. بنابراین می توانید محیط خود را بهتر درک کرده و میانگین زمان اصلاح (MTTR) را کاهش دهید. RCA همچنین به شما کمک می کند تا مسائل را به تیم مربوطه در سازمان خود انتقال دهید تا سریعتر آنها را حل کند. درست مانند تشخیص ناهنجاری، هوش مصنوعی نیز برای خودکارسازی تجزیه و تحلیل هر ناهنجاری مشکوک استفاده می‌شود و دقیق‌ترین تصویر را از آنچه باعث این مشکل می‌شود به شما ارائه می‌دهد. با استفاده از معیارهای شناسایی دامنه خطا، و همچنین تجزیه و تحلیل مؤلفه‌های آسیب‌دیده، تجزیه و تحلیل علت ریشه‌ای تمام اطلاعاتی را که برای بازگرداندن سلامت برنامه‌تان به آن نیاز دارید، در اختیار شما قرار می‌دهد.

    نظارت بر تجربه دیجیتال کاربر نهایی

    دلیلی وجود دارد که این قابلیت در بالای چارچوب مفهومی APM گارتنر قرار گرفته است: کسب‌وکارهایی که تجربه دیجیتال را در اولویت قرار می‌دهند، به احتمال زیاد از رویدادهای تأثیرگذار بر کسب‌وکار جلوتر می‌مانند. ابزارهای APM بسته به نوع کسب و کار شما، دو روش اصلی نظارت بر کاربر نهایی را در اختیار قرار می‌دهد. نیازهای نظارت مصنوعی، از هوش مصنوعی برای شبیه سازی ترافیک در برنامه شما استفاده می‌کند، درحالیکه نظارت کاربر واقعی به شما بینشی از تجربه کاربران فعال می‌دهد. هر دو نظارت مصنوعی و کاربر واقعی می توانند به طور همزمان برای شناسایی و حل مشکلات احتمالی که کاربران شما ممکن است با آن مواجه شوند، مانند زمان بارگذاری کند یا خرابی، مورد استفاده قرار دهند.

    معرفی راهکار مانیتورینگ کارایی برنامه

    کاربردهای نظارت کاربر نهایی (EUM):

    ببینید اکثر ترافیک شما از کجاها در سراسر جهان می آید

    ببینید زمان پاسخ کاربر نهایی شما چقدر سریع است

    کارایی برنامه خود را برای کاربران تلفن همراه در مقابل دسکتاپ بیابید

    برخی از ابزارهای APM همچنین شامل یک نقشه مسافرت هستند تا بتوانید تجربه کاربران خود را در حین حرکت در برنامه دنبال کنید (اینکه با چه مشکلاتی ممکن است در طول مسیر با آنها مواجه شوند). نظارت بر تجربه کاربر نهایی، یکی از بزرگترین مزایای یک ابزار APM است. چرا؟ زیرا ارائه یک تجربه مثبت به کاربران برنامه شما بدان معنیست که آنها برمی‌گردند و برنامه شما را به دیگران توصیه می کنند. یک تجربه کاربری مثبت، سازمان شما را برای رشد مستمر تنظیم می‌کند.

    تجزیه و تحلیل کسب و کار

    نرم افزار مانیتورینگ کارایی APM به شما این امکان را می‌دهد که سلامت برنامه های خود را از دریچه کسب و کار مشاهده کنید - به این معنی که می توانید از تجزیه و تحلیل کسب و کار استفاده کنید تا کارایی برنامه خود را در یک زمینه تجاری قرار داده و ببینید که سفر مشتری شما چگونه بر سود شما تأثیر می‌گذارد. به عنوان مثال، می توانید تعداد مشتریان فعال در سایت تان را در زمان واقعی و همچنین زمان پاسخگویی و میزان خطاها را مشاهده نمایید. برای به حداکثر رساندن کارایی تجاری، می‌توانید KPIهای سفارشی را برای سازمان خود، مانند نرخ تبدیل و نرخ رهاسازی، اولویت بندی کنید. از نقشه جریان تراکنش استفاده کنید تا ببینید مشتریان در کجا با خطا مواجه می شوند یا ترافیک برنامه خود را در طول یک کَمپین یا تبلیغات مهم نظارت کنید

    تجزیه و تحلیل و داشبورد

    اگر می خواهید واقعاً رهبران تجاری در سازمان خود را تحت تأثیر قرار دهید، این قابلیت به ابزار مهمی در زرادخانه شما تبدیل می‌شود. تجزیه و تحلیل نرم افزار مانیتورینگ کارایی APM می‌تواند به پاسخگویی به تعدادی از سؤالات کسب و کار کمک کند، مانند اینکه چقدر درآمد احتمالی به دلیل خرابی برنامه از دست رفته است، یا اینکه چه تعداد از کاربران شما نتوانسته اند در 24 ساعت گذشته تراکنشهای کسب و کار را به دلیل مشکلات کارایی برنامه انجام دهند. اینها سؤالات مهمی هستند که تجزیه و تحلیل APM می‌تواند به آنها پاسخ دهد. بنابراین آنها می‌توانند متوجه شوند که سلامت برنامه چقدر برای موفقیت تجاری مهم است. یک نرم افزار مانیتورینگ کارایی APM خوب به شما این امکان را می دهد که بدون توجه به پیچیدگی محیط، یک نمای کامل از برنامه های خود را شخصی سازی کنید. می‌توانید داشبوردی را بسازید که برای کسب و کار شما مناسب‌تر است




    شرکت مهندس پیشگان آزمون افزار یاس، خدمات زیر را در حوزه ارزیابی و مانیتورینگ کارایی نرم افزار ارائه می دهد:

    آموزش روشهای ارزیابی کارایی سامانه های نرم افزاری از طریق آزمون‌های بار و فشار

    اجرای آزمون‌های بار و فشار برروی سامانه های نرم افزاری

    تهیه و آموزش ابزارهای تست پرفورمنس (تست بار و فشار) همچون WPLT و LoadTest

    مانیتورینگ و مانیتورینگ شاخص های کارایی سامانه های نرم افزاری از طریق ابزارهای مدیریت کارایی همچون AppDynamicsو DynaTrace


    نویسنده : شرکت مهندس پیشگان آزمون افزار یاس


  • چرا APM مهم است؟

    چرا APM مهم است؟

    در مورد مزایای یکپارچه سازی مدیریت کارایی برنامه (APM) در گردش کار IT و اینکه چگونه می‌توان تجربه کاربری را بهبود بخشید، بیاموزید.

    زندگی ما حول محور برنامه‌های کاربردی می‌چرخد. ما از آنها برای تعامل و انجام معاملات با مشتریان خود، افزایش بهره وری در محل کار، در زمان توقف برای پخش ویدیوها، مرور اینترنت و ارتباط با دوستان و خانواده استفاده می‌کنیم. ما انتظار داریم که آنها کارایی بی عیب و نقص و سرعت مطلوب داشته باشند. به آخرین باری که کارایی ضعیف برنامه را تجربه کردید، فکر کنید. آیا سعی کردید مجددا از برنامه استفاده کنید یا - همچون اکثر مصرف کنندگان مورد بررسی - به سادگی ادامه دادید؟

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

    اینجا جایی است که مدیریت کارایی برنامه (APM) وارد عمل می‌شود. با در نظر گرفتن موارد فوق، به راحتی می توان استدلال کرد که APM نه تنها مهم است، بلکه یک ضرورت تجاری است.

    APM چیست و چرا مهم است؟

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

    اما چرا به طور خاص به APM نیاز داریم؟

    بیایید به چند مزیت کلیدی APM و نقش آنها در حل مشکلات کارایی نگاه کنیم.

    مزیت شماره 1: APM سیلوهای عملیاتی را خراب می کند.

    APM یک نمای یکپارچه را در کل پشته برنامه شما، از جمله هر مؤلفه، نقطه اتصال، وابستگی، و تعامل کاربر ارائه می دهد.

    این به تیم‌های متعددی که از برنامه شما پشتیبانی می‌کنند، با تجهیز آنها به دید جامع سود می‌بخشد و به آنها اجازه می‌دهد به گونه‌ای همکاری کنند که بدون APM عملاً غیرممکن است. این امر به ویژه در محیط‌های بسیار پراکنده و چند ابری که امروزه بسیاری از برنامه های کاربردی مدرن را پشتیبانی می‌کنند، مهم است.

    تعریف پشته برنامه
    پایش Front-Endکارایی برنامه کاربردی شما از دید کاربر نهایی
    پایش Back-Endکارایی برنامه در سطح سرویس‌هایی که برنامه کاربردی شما را ایجاد کرده‌ و عملکرد موردنظر کاربر را برای کاربر نهایی فراهم کرده اند.
    پایش زیرساخت و ابرکارایی زیرساخت که پشتیبان برنامه کاربردی است و شامل سرورها, پایگاه داده ها, شبکه و سرویس های ابری است که ممکن است شما از آن‌ها استفاده نمایید

    مزیت شماره 2: APM به شما امکان می دهد انتظارات مشتری را برآورده کنید و حتی از آن فراتر بروید.

    همانطوری‌که قبلاً گفتیم، هنگامی‌که یک برنامه با مشکلات کارایی مواجه می‌شود یا در دسترس نیست، شما در معرض خطر از دست دادن مشتریان خود هستید. APM بینش‌های کارایی بی‌درنگ را ارائه می‌کند که به شما امکان می‌دهد در هنگام بروز مشکلات، سریعا واکنش نشان داده و میانگین زمان اصلاح (MTTR) را کاهش داده و برنامه خود را به کارایی عادی بازگردانید. با حل فعالانه مسائل، بهتر می توانید تجربه بی عیب و نقصی را که مشتریان از برنامه های شما انتظار دارند، ارائه دهید.

    APM چطور به کاهش (MTTR) کمک می‌کند
    کارایی پایهمعیارهای پایه برنامه کاربردی به درک کارایی برنامه کاربردی بصورت نرمال کمک می کند.
    اتوماتیک سازی هشدارایجاد هشدار، زمانی‌که یک شاخص کارایی منحرف شده و کارایی غیرعادی می‌شود.
    تحلیل ریشه یابی (RCA)بینشی برای تجزیه و تحلیل مشکلات ارائه می‌دهد تا بتوانید ریشه مشکل را تشخیص دهید.

    مزیت شماره 3: APM از سود شرکت شما محافظت می‌کند.

    اولویت بندی راه درست با APM
    اولویت اول: تأثیرگذاری بر کسب و کارآیا مشکل کارایی موجود در برنامه کاربردی تأثیری بر شاخص های اصلی کسب و کار دارد؟
    اولویت دوم: تاثیرگذاری برروی کاربرآیا مشکل کارایی موجود در برنامه کاربردی برروی تجربه کاربری تأثیر می گذارد؟
    اولویت سوم: تمامی موارد دیگرآیا مشکلات بوجود آمده، برروی کارایی کل سیستم و برنامه کاربردی تأثیر گذاشته است؟

    چه چیزی در دنیای APM در آینده مهم است؟


    راه حل های APM به طور مداوم در حال تکامل هستند تا نیازهای فناوری های در حال تغییر را که ما برای ساخت برنامه ها استفاده می کنیم، برآورده سازد. در زمان نگارش این مقاله، ما در آستانه یک تغییر بزرگ هستیم که APM را به مرحله بعدی تکامل خود می‌برد. دو نیروی محرکه این تغییر، مشاهده پذیری و OpenTelemetry هستند که در سطح بالا می توان آنها را دست به دست هم داد.

    مشاهده پذیری یک تعریف بسیار سیال دارد. اما به طور کلی، می توانید APM را به عنوان استروئیدها در نظر بگیرید. با توجه به نیازهای پیشرفته تیم‌های DevOps و SRE، مشاهده‌پذیری، داده‌های لازم برای به دست آوردن درک عمیق از سیستم‌های پیچیده و پراکنده را فراهم می‌سازد - که معمولاً به عنوان M.E.L.T تعریف می‌شوند. (سنجه ها، رویدادها، لاگ، ردیابی). این درک دقیق از نحوه عملکرد برنامه ها و سیستم ها به شما کمک می کند تا در صورت بروز مشکلات، MTTR را بیشتر کاهش دهید.

    هر چند، این امر عالی به نظر می‌رسد، اما به‌دست آوردن داده‌های M.E.L.T مرتبط موردنیاز برای تحقق این امر بسیار چالش برانگیز است. OpenTelemetry را وارد کنید. OpenTelemetry یک استاندارد مستقل از فروشنده، جهت جمع‌آوری داده‌های تله‌متری برای برنامه‌ها، زیرساخت‌های پشتیبان و سرویس‌ها است که مکانیزم و ​​قالب جمع‌آوری منسجمی را فراهم می‌سازد که برای درک و اعتبارسنجی کارایی در پیچیده‌ترین برنامه‌های کاربردی توزیع شده لازم است.

    در حالی‌که قابلیت مشاهده و OpenTelemetry هنوز در مراحل ابتدایی خود هستند، هر دو، نشانگر تلاش‌های مداوم صنعت برای تسهیل پیچیدگی بوده و اطمینان می‌دهند که برنامه‌ها همیشه تجربیات دیجیتال و نتایج تجاری بهتری را ارائه خواهند کرد. منتظر تحولات در این زمینه باشید.




    شرکت مهندس پیشگان آزمون افزار یاس، خدمات زیر را در حوزه ارزیابی و پایش کارایی نرم افزار ارائه می دهد:

    آموزش روشهای ارزیابی کارایی سامانه های نرم افزاری از طریق آزمون‌های بار و فشار

    اجرای آزمون‌های بار و فشار برروی سامانه های نرم افزاری

    تهیه و آموزش ابزارهای تست پرفورمنس (تست بار و فشار) همچون WPLT و LoadTest

    پایش و مانیتورینگ شاخص های کارایی سامانه های نرم افزاری از طریق ابزارهای مدیریت کارایی همچون AppDynamicsو DynaTrace


    نویسنده : شرکت مهندس پیشگان آزمون افزار یاس


  • کارایی رایانش ابری (قسمت اول)

    کارایی رایانش ابری (قسمت اول)

    ظهور رایانش ابری برخی مشکلات را در زمینه کارایی سیستم‌ها حل کرد در حالی که مشکلات جدیدی را ایجاد نمود. ابرها معمولاً براساس فناوری های مجازی سازی ساخته شده اند و به چندین نمونه سیستم عامل یا مستاجر اجازه می دهد تا یک سرور فیزیکی را به اشتراک بگذارند. این بدان معناست که ممکن است مناقشه منابع وجود داشته باشد: نه فقط از سایر فرآیندها ، همانطوریکه در یونیکس این مورد عادی بوده است، بلکه از کل سیستم عامل های دیگر نیز استفاده می شود. جداسازی اثرات کارایی هر مستاجر یک امر حیاتی است. همچنین تشخیص زمانیکه کارایی توسط دیگر مستاجران، ضعیف شده یا تحت تاثیر قرار می‌دهد، بسیار اهمیت دارد.

    در این مقاله کارایی محیط‌های رایانش ابری را مورد بحث قرار می دهیم که از سه بخش تشکیل شده است:

     پس زمینه:معماری رایانش ابری و مفاهیم مربوط به کارایی آنها را بیان می‌کند.

     مجازی سازی سیستم عامل :جایی است که یک هسته واحد سیستم را مدیریت می‌کند و نمونه سیستم عامل های مجازی را ایجاد می‌کند که از یکدیگر ایزوله شده اند.

     مجازی سازی سخت افزار :جایی است که یک hypervisor چندین سیستم عامل guest را مدیریت می کند. هرکدام از سیستم عامل ها هسته خود را داشته و با دستگاه های مجازی تعامل دارند.

    محیط‌های ابری که از سیستم مجازی سازی استفاده نمی‌کنند، شاخص‌های کارایی آنها را می‌توان همانند سیستم‌های توزیع شده تصور کرد.

    پس زمینه رایانش ابری

    پس زمینه رایانش ابری

    رایانش ابری به منابع محاسباتی اجازه می‌دهد تا به عنوان یک سرویس ارائه شوند و از بخش‌های کوچکی از سرور به سیستم های چند سروری تبدیل شوند. بسته به میزان نصب و پیکربندی نرم افزار، انواع مختلفی وجود دارد. در این قسمت ما تمرکر را برروی IaaS قرار می دهیم که سیستم عامل ها را بعنوان نمونه سرور ارائه می دهند. به عنوان نمونه‌ هایی از IaaS می‌توان به سرویس‌های Amazon Web Service، Rackspace و Joyent اشاره نمود.

    نمونه های سرور معمولا سیستم های مجازی هستند که در طی مدت زمان کوتاهی در حدد چند دقیقه می توانند ایجاد و یا نابود شده و همچنین در زمان کوتاهی به محیط عملیاتی منتقل شوند.

    برای خلاصه سازی اصطلاحات ابری، یک چارچوب تامین پویا برای نمونه های سرور توصیف می شود. موارد متعدد سرور به عنوان مهمان یک سیستم میزبان فیزیکی اجرا می‌شود. مهمان‌ها، مستاجر نیز نامیده می‌شوند. از اصطلاح چندسانی بودن برای توصیف تاثیر آنها بر همسایگان خود استفاده می‌شود. میزبان توسط اپراتورهای ابر مدیریت می شود و مهمان ها یا مستاجران توسط کاربران مدیریت می‌گردند.

    رایانش ابری برای تعدادی از مباحث کارایی دارای اهمیت است: نسبت قیمت/کارایی، معماری، برنامه ریزی ظرفیت، ذخیره سازی و چندسانی.

    نسبت قیمت/کارایی

    نسبت قیمت/کارایی در رایانش ابری

    بسیاری از ارائه دهندگان ابر عمومی وجود دارند که نمونه های سرور ابری را توسط ساعت و قیمت بر اساس اندازه حافظه نمونه (DRAM) می‌فروشند، مثلا با هزینه 8 گیگابایت تقریباً هشت برابر یک نمونه 1 گیگابایت. منابع دیگر مانند CPU با توجه به حجم حافظه مقیاس‌بندی و قیمت گذاری می شوند. نتیجه می تواند یک نسبت ثابت قیمت/کارایی باشد. همچنین ممکن است از سایر منابع استفاده شود، مانند توان شبکه و ذخیره سازی.

    معماری مقیاس پذیر

    محیط‌های سازمانی به طور سنتی از رویکرد مقیاس پذیری عمودی برای جابجایی بار استفاده می کنند: ایجاد سیستم های بزرگتر (mainframes). این رویکرد، محدودیت‌های خاص خود را دارد. یک محدودیت اصلی اندازه فیزیکی کامپیوتری است که می‌توان آن را ساخت که می‌تواند به اندازه درهای آسانسور یا وسایل حمل و نقل محدود شود. مشکلات مربوط به انسجام حافظه نهان CPU به عنوان مقیاس‌های شمارش CPU افزایش می یابد. راه حل این محدودیت ها مقیاس بندی بار برروی بسیاری از سیستم های کوچک بوده است. این را مقیاس پذیری افقی می نامند. در موسسات تجاری برای خوشه های رایانه ای به ویژه با محاسبات کارایی بالا HPC استفاده شده است.

    رایانش ابری نیز بر اساس مقیاس پذیری افقی است. یک محیط نمونه در شکل زیر نشان داده شده است که شامل سرورهای توازن بار، سرورهای وب، سرورهای برنامه و پایگاه های داده است.

    معماری مقیاس پذیر در رایانش ابری

    هر لایه محیطی شامل یک یا چند نمونه سرور است که به طور موازی اجرا می شوند و تعداد بیشتری برای تحمل بار اضافه می شوند. ممکن است نمونه هایی بصورت جداگانه اضافه شوند یا معماری ممکن است به پارتیشن های عمودی تقسیم شود، جایی‌که گروهی متشکل از سرورهای پایگاه داده، سرورهای برنامه و سرورهای وب بعنوان یک واحد اضافه می‌شوند.

    دشوارترین لایه برای اجرای موازی، لایه پایگاه داده است، به دلیل مدل پایگاه داده سنتی که در آن یک نمونه پایگاه داده باید اصلی باشد. داده در این پایگاه داده ها مانند MySQL می تواند به گروه های منطقی تقسیم شوند که shards نامیده می شوند که هرکدام توسط پایگاه داده خود (اصلی یا ثانویه) مدیریت می شوند. معماری های اخیر پایگاه داده ، مانند Riak اجرای موازی را به صورت پویا انجام داده و بار را بر روی نمونه های موجود گسترش می دهند.

    با توجه به اندازه نمونه سرور به طور معمول کوچک ، به عنوان مثال ، 1 گیگابایت (در میزبانهای فیزیکی با 128 گیگابایت و بیشتر DRAM) ، مقیاس بسیار کوچک می تواند برای دستیابی به قیمت/عملکرد مطلوب به جای سرمایه گذاری در سیستم های بزرگ مورد استفاده قرار گیرد.

    برنامه ریزی ظرفیت (Capacity Planning)

    در محیط‌های سازمانی، سرورها می‌توانند هزینه زیرساخت قابل توجهی باشند، هم برای سخت افزار و هم برای هزینه های قرارداد خدمات پشتیبانی كه ممكن است سالها به طول انجامد. همچنین تولید سرورهای جدید ماه ها طول می کشد: زمان صرف شده در تأییدیه ها، منتظر در دسترس بودن قطعات، حمل و نقل، نصب و آزمایش.

    برنامه ریزی ظرفیت بسیار مهم است. بنابراین می توان سیستم های با اندازه مناسب را خریداری نمود: سرورهای بیش از حد بزرگ هزینه بر است و با قراردادهای خدمات، ممکن است در سالهای آینده پرهزینه باشد. برنامه ریزی ظرفیت همچنین می تواند به پیش بینی افزایش تقاضا از قبل کمک کند، بنابراین مراحل خرید طولانی مدت می تواند به موقع انجام شود.

    رایانش ابری بسیار متفاوت است. نمونه های سرور ارزان هستند و تقریباً فوراً ایجاد و از بین می روند. به جای صرف زمان برای برنامه ریزی آنچه ممکن است مورد نیاز باشد ، شرکت ها می توانند موارد سرور را در صورت نیاز، در واکنش به بار واقعی افزایش دهند. این کار را می توان به طور خودکار از طریق API ابری ، بر اساس معیارهای نرم افزار مانیتورینگ انجام داد.

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

    فعالیتهای انجام شده در ابر برای برنامه ریزی ظرفیت شامل موارد زیر است:

     اندازه پویا :افزودن و حذف خودکار نمونه های سرور.

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

    با در نظر گرفتن محدودیت‌های زمانی، امکان مدل سازی مقیاس پذیری (مشابه مطالعات سازمانی) جهت برآورد مقیاس پذیری وجود دارد.

    اندازه پویا

    افزودن خودکار نمونه های سرور می تواند نیاز به سرعت پاسخگویی به بار را برطرف کند اما همچنین ممکن است بیش از حد تأمین شود، همانطور که در شکل زیر نشان داده شده است. به عنوان مثال، حمله DoS ممکن است به عنوان افزایش بار ظاهر شود و باعث افزایش گران قیمت نمونه های سرور شود. خطر مشابهی در مورد تغییرات برنامه وجود دارد که کارایی را پس می زند و موارد بیشتری را برای تحمل بار مشابه نیاز دارد. مانیتورینگ برای اطمینان از منطقی بودن این افزایش ها مهم است.

    اندازه پویا

    برخی از ابرها همچنین می توانند هنگام کاهش بار ، اندازه خود را کاهش دهند. به عنوان مثال ، در دسامبر 2012، Pinterest هزینه ها را از 54 دلار در ساعت به 20 دلار در ساعت کاهش داد و به طور خودکار سیستم های ابری خود را پس از ساعت ها خاموش کرد. صرفه جویی های فوری مشابه نیز می تواند نتیجه تنظیم کارایی باشد، جاییکه تعداد موارد مورد نیاز برای رسیدگی به بار کاهش یافته است.

    برخی از معماری های ابری (بعنوان مثال، مجازی سازی سیستم عامل) می‌توانند منابع CPU بیشتری را به صورت پویا، در صورت موجود بودن، با استفاده از استراتژی ای به نام انفجار اختصاص دهند. این امر می تواند بدون هیچ هزینه اضافی ارائه شود. در واقع با ارائه یک بافر که از طریق آن بتوان بار اضافی را بررسی کرد تا مشخص شود که آیا واقعی بوده است و به احتمال زیاد ادامه خواهد داشت یا خیر، مانع از تامین بیش از حد منابع می‌گردد. در این صورت، موارد بیشتری را می توان تهیه کرد تا منابع در آینده تضمین شوند.

    هر یک از این تکنیک ها باید به طور قابل ملاحظه ای کارآمدتر از محیط های سازمانی باشند - مخصوصاً آنهایی که اندازه ثابتی برای مدیریت حداکثر بار مورد انتظار در طول عمر سرور انتخاب شده است. چنین سرورهایی ممکن است عمدتا بیکار باشند.

    فضای ذخیره سازی

    یک نمونه سرور ابری معمولاً دارای ذخیره سازی محلی است که از دیسک های محلی برای فایل های موقت ارائه می‌شود. این ذخیره سازی محلی فرّار است و هنگامی که نمونه سرور از بین می رود، آنها نیز از بین می روند. برای ذخیره سازی مداوم، معمولاً از یک سرویس مستقل استفاده می‌گردد که به هر دو صورت ذخیره سازی را برای نمونه ها فراهم می‌سازد.

     File store:برای مثال فایل ها برروی NFS قرار دارند.

     Block Store:مانند بلاک ها برروی iSCSI.

     Object Store:مسئولیت آن برعهده API می باشد که اغلب برروی پروتکل HTTP هستند.

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

    فضای ذخیره سازی در رایانش ابری

    افزایش تأخیر برای دسترسی به ذخیره سازی شبکه معمولاً با استفاده از حافظه پنهان برای داده های مکرر دسترسی کاهش می یابد. برخی از سرویس های ذخیره سازی امکان خرید نرخ IOPS را در صورت نیاز به عملکرد مطمئن، ( IOPS AWS EBS Provisioned ) فراهم می سازند.

    چندسانی

    یونیکس یک سیستم عامل چند وظیفه ای است که برای رسیدگی به چندین کاربر و پردازش دسترسی به منابع یکسان طراحی شده است. افزوده های بعدی توسط BSD ، Solaris و Linux محدودیت منابع و کنترل هایی را برای به اشتراک گذاری عادلانه این منابع فراهم ساخته است.

    رایانش ابری از این جهت متفاوت است که تمام نمونه های سیستم عامل در یک سیستم فیزیکی یکسان وجود دارند. هر مهمان سیستم عامل جداگانه خود را دارد: مهمانان نمی‌توانند کاربران و فرآیندهای سایر مهمانان را در یک میزبان مشاهده کنند - این کار حتی اگر منابع فیزیکی یکسانی داشته باشند، نشت اطلاعات خواهد بود.

    از آنجاییکه منابع بین مستاجران به اشتراک گذاشته می شود، مشکلات کارایی ممکن است توسط همسایگان پر سر و صدا ایجاد شود. به عنوان مثال، مهمان دیگری در همان میزبان ممکن است یک dump کامل از پایگاه داده را در طول حداکثر بارگذاری شما انجام دهد و بر روی دیسک ورودی/خروجی شبکه شما تداخل ایجاد کند. بدتر از آن، یک همسایه می‌تواند با اجرای کدهای مربوط به معیارهای خرد که عمداً منابع را اشباع می کند تا حد خود را پیدا کند، ارائه دهنده ابر را ارزیابی کند.

    راهکارهایی برای حل این مشکل وجود دارد. تاثیرات چندسانی می‌تواند توسط مکانیزم مدیریت منابع کنترل شود: تنظیم کنترل منابع سیستم عامل که ایزوله سازی کارایی را فراهم می‌سازد (همچنین ایزوله سازی منابع نیز نامیده می شود). اینجاست که محدودیت ها یا اولویت های مستأجر برای استفاده از منابع سیستم اعمال می شود: پردازنده، حافظه، دیسک یا سیستم فایل ورودی و خروجی و توان شبکه. فناوری های ابری، همه این موارد را ارائه نکرده اند، به ویژه محدودیت‌های ورودی/خروجی دیسک.

    صرف نظر از محدودیت استفاده از منابع، رعایت نزاع چند منظوره می‌تواند به اپراتورهای ابری کمک کند تا محدودیت‌ها را تنظیم کرده و مستاجران را در میزبان های موجود بهتر متعادل کنند. میزان مشاهده پذیری بستگی به نوع مجازی سازی دارد: مجازی سازی سیستم عامل یا مجازی سازی سخت افزاری.





    نویسنده : شرکت مهندس پیشگان آزمون افزار یاس


  • کارایی رایانش ابری (قسمت دوم) - مجازی سازی سیستم عامل

    کارایی رایانش ابری (قسمت دوم)

    مجازی سازی سیستم عامل، یک سیستم عامل را به نمونه هایی تقسیم می‌کند که مانند سرورهای جداگانه ی guest عمل می‌کنند بطوریکه می‌توانند مستقل از میزبان، مدیریت و راه اندازی مجدد شوند. این کار، نمونه های سرور با کارایی بالا را برای مشتریان ابر و همچنین سرورهای با تراکم بالا را برای اپراتورهای ابر ارائه می دهد. سیستم عامل های guest مجازی سازی شده در شکل زیر، با استفاده از اصطلاحات Solaris Zones نشان داده شده اند.

    کارایی رایانش ابری (قسمت دوم)

    Global zone در تصویر فوق نشان داده شده است. این به سیستم عامل میزبان اشاره می‌کند که می‌تواند همه guest zones را مشاهده نماید (این مناطق non-global zones نیز نامیده می شود).

    این رویکرد از دستورchroot(8) یونیکس سرچشمه می‌گیرد که هر فرآیند را در زیر درختی از سیستم فایل جهانی یونیکس ایزوله می‌کند. در سال 1998، FreeBSD این را بیشتر بعنوان jails FreeBSD توسعه داد و این منجر به ارائه محفظه‌های امنی شد که هرکدام بعنوان سرورهای خود عمل می‌کنند.

    در سال 2005، Solaris 10 شامل نسخه‌ای به نام Solaris Zones با کنترل منابع مختلف بود. از طریق OpenSolaris و بعدا SmartOS ناحیه ها (zones) برای محیط عملیاتی ابر عمومی Joyent تولید شد. اخیرا پروژه هایی برای مجازی سازی سیستم عامل لینوکس انجام شده است از جمله LXC Linux Containers وOpen Virtuozzo(OpenVZ) که توسط شرکتparallels پشتیبانی شده و به هسته لینوکس اصلاح شده نیازمند است.

    تفاوت اصلی با فناوری‌های مجازی سازی سخت افزار این است که فقط یک هسته در حال اجراست که این مهم دارای مزایای زیر می‌باشد:

     برای برنامه های مهمان که دارای I/O هستند سربار کمی وجود دارد و یا اصلا وجود ندارد زیرا برنامه های مهمان می توانند فراخوانی های سیستمی را مستقیما در هسته میزبان انجام دهند.

     حافظه اختصاص داده شده به مهمان می تواند بطور کلی برای برنامه های کاربردی مهمان مورد استفاده قرار بگیرد و هزینه زیادی برای هسته ندارد.

     یک حافظه پنهان سیستم فایل یکپارچه وجود دارد که توسط میزبان و مهمان ذخیره نشده است.

     همه فرآیندهای مهمان برای میزبان قابل مشاهده هستند که باعث می شود مشکلات کارایی مربوط به تعامل آنها از جمله بحث منابع اشکال زدایی شود.

     پردازنده ها، پردازنده های واقعی هستند. لذا مفروضات قفل‌های تطبیقی موتکس، معتبر باقی می‌مانند.

    در مقابل معایب زیر نیز وجود دارد:

     هرگونه panic هسته باعث اثرگذاری برروی تمامی سیستمهای مهمان می‌شود.

     مهمانان نمی توانند نسخه های مختلف هسته را اجرا کنند.

    برای اجرای نسخه های مختلف هسته و سیستم عامل های مختلف ، به مجازی سازی سخت افزاری نیاز داریم. مجازی سازی سیستم عامل می تواند این نیاز را تا حدی با ارائه رابط های فراخوانی سیستمی متناوب برآورده سازد. نمونه ای از آن Solaris lx Branded Zones بود که یک رابط فراخوانی سیستمی لینوکس و محیط برنامه تحت هسته Solaris ارائه می‌داد.

    بخش های زیر ویژگی های مجازی سازی سیستم عامل را شرح می دهد: سربار، کنترل منابع و قابلیت مشاهده. این محتوا بر اساس یک ابر عمومی است که سالها مورد استفاده قرار گرفته است (همچنین احتمالاً بزرگترین ابر مجازی سیستم عامل در سراسر جهان است): اجرای Joyent SmartOS از Zones. این اطلاعات باید به طور کلی برای همه پیاده سازی‌های مجازی سازی سیستم عامل کاربرد داشته باشد، حتی با تفاوت‌های مربوط به پیکربندی و کنترل منابع. Linux lxc Containers می‌تواند از cgroups استفاده کند، که به عنوان نمونه برای موارد مشابه در اینجا توضیح داده شده است.

    سربار (Overhead)


    درک اینکه چه زمانی نباید انتظار سربار کارایی از مجازی سازی را داشته باشید، در بررسی مشکلات و مسائل مربوط به کارایی ابر مهم است. این سربار کارایی را می توان با توصیف سربار برای اجرای CPU، سربار برای انجام I/O و اثرات سایر مستاجران خلاصه کرد.

    سربار CPU


    سربار اجرای پردازنده درحالی که یک نخ (thread) در حالت کاربر در حال اجراست، صفر است. نخ های همزمان یا شبیه سازی شده مورد نیاز نیستند، نخ هایی که مستقیما برروی CPU اجرا می شوند و نگه داشته می شوند و یا فراخوانی می شوند.

    تا زمانیکه بصورت مکرر فراخوانی نمی‌شوند، به کارایی حساس نیستند. فعالیت‌هایی مانند لیست کردن حالتهای هسته که ممکن است سربار CPU را متحمل شود. این شامل خواندن سیستم فایل /proc با ابزارهای سنجش وضعیت مانند prstat()، top() است که شامل تمامی اطلاعات ورودی فرآیندها می‌شود. کد هسته برای انجام این امر به صورت زیر است:

    کارایی رایانش ابری (قسمت دوم)

    این کار در سیستم های فعلی اندازه گیری شد و مشخص گردید که به ازای هر 1000 ورودی فرآیند 40 میکرو ثانیه هزینه دارد. برای فعالیت هایی که بندرت ایجاد می شوند هزینه خیلی کمی دارد.

    سربار I/O


    سربار ورودی/خروجی صفر است، مگر اینکه ویژگی‌های اضافی پیکربندی شده باشد. برای کارکرد اصول مجازی سازی ، هیچ لایه اضافی در پشته نرم افزار لازم نیست. در تصویر زیر مسیر I/O فرآیندهای Unix را با Zones مقایسه می‌کند.

    کارایی رایانش ابری (قسمت دوم)

    در ادامه دو ردپای پشته هسته (با استفاده از DTrace) برای انتقال بسته های شبکه برای میزبان و مهمان نمایش داده شده است:

    کارایی رایانش ابری (قسمت دوم)

    اینها یکسان هستند. یک لایه اضافی معمولاً به عنوان فریم های اضافی در پشته ظاهر می شود. جهت دسترسی به سیستم فایل، ممکن است Zones به گونه ای پیکربندی شود که بر روی سیستم فایل های حلقه ای نصب شود، که خود بر روی سیستم فایل های میزبان نصب شده اند. این استراتژی برای مدل مناطق sparse-root استفاده می شود: راهی برای به اشتراک گذاری فایلهای فقط خواندنی (به عنوان مثال /usr/bin) بین zones. اگر از فایل سیستم های loopback استفاده شود، مقدار کمی از سربار CPU برای سیستم فایل ورودی/خروجی ایجاد می شود.

    مستاجران دیگر


    شواهد حضور مستاجران نشان می دهد که حضور در حال اجرا بودن آنها اثراتی برروی کارایی دارد که مانع افزایش کارایی می‌شود، که به تکنولوژی مجازی سازی مرتبط نمی‌باشد:

     حافظه CPU ممکن است نسبت hit کمتری داشته باشد چراکه سایر مستاجران در حال مصرف و بیرون کردن ورودی هستند.

     اجرای CPU ممکن است برای مدت کوتاهی برای سایر دستگاه‌های مستاجر (به عنوان مثال، ورودی/خروجی شبکه) که روال‌های سرویس وقفه را انجام می دهند، قطع شود.

      • ممکن است در مورد منابع سیستم (همچون دیسک‌ها و رابط‌های شبکه) از سایر مستاجران که از آنها استفاده می‌کنند، اختلاف نظر باشد. آخرین عامل با کنترل منابع مدیریت می‌شود. هرچند برخی از این عوامل در یک محیط سنتی چند کاربره وجود دارد، اما در محاسبات ابری بسیار بیشتر است.

    کنترل منابع


    در حالیکه زیرساخت مجازی سازی سیستم عامل، امنیت بین همسایگان را کنترل می‌کند، کنترل‌های منابع، کارایی را مدیریت می‌کنند. جدول زیر نواحی کنترل منابع را شرح داده و از پیکربندی ابر عمومی Joyent براساس SmartOS به عنوان نمونه استفاده می‌کند. اینها براساس محدودیت ها و اولویت ها طبقه بندی شده اند که توسط اپراتور یا نرم افزار ابر برای هر مهمان تعیین می‌گردند. محدودیت ها مقدار سقف مصرف منابع هستند. اولویت ها مصرف منابع را برای متعادل سازی استفاده بین همسایگان بر اساس ارزش اهمیت اداره می‌کنند.

    Resource Priority Limit
    CPUFSScaps
    Memory capacityrcapd/zoneadmdVM limit
    File system I/OZFS I/O throttling------
    File system capacity---------ZFS quotas, file system limits
    Disk I/Oمشاهده کنیدfile system I/O-------
    Network I/Oflow prioritybandwidth limits

    CPU


    از آنجاییکه یک مهمان مجازی شده با سیستم عامل می‌تواند تمام CPU های فیزیکی روی سیستم را مستقیماً ببیند، گاهی اوقات می توان 100٪ منابع CPU را مصرف کرد. برای سیستم هایی که عمدتا با CPU های بیکار کار می‌کنند، این به سایر مهمانان اجازه می‌دهد که از آن CPU استفاده کنند؛ به ویژه برای سرویس دهی به موج کوتاه تقاضا. Joyent این توانایی را انفجار می‌نامد. این به مشتریان ابری کمک می کند تا تقاضای سنگین کوتاه مدت را بدون تامین بیش از حد پرهزینه مقابله کنند.

    سرپوش CPU


    Caps می‌تواند برای استفاده از CPU مهمان، محدودیت ایجاد کند و از انفجار آن جلوگیری کند که برحسب درصد کل CPU بیان‌می شود. برخی از مشتریان این را ترجیح می دهند چراکه انتظار کارایی ثابتی را دارند که می تواند برنامه ریزی ظرفیت را ساده کند.

    برای سایر مشتریان، در تنظیمات پیش فرض Joyent، میزان CPU به طور خودکار به چند برابر سهم مورد انتظار مشتری (به عنوان مثال، هشت بار) افزایش می‌یابد. این امر به مهمان اجازه می‌دهد تا در صورت موجود بودن منابع CPU بتواند بصورت انفجاری از آنها استفاده کند. اگر میهمان ساعت‌ها یا روزها به صورت انفجاری استفاده کند (همانطوریکه توسط پایش مشخص می‌شود)، می‌توان مشتری را ترغیب نمود تا اندازه مهمان را ارتقا دهد تا CPU مصرف شده به جای اینکه بستگی به انفجار داشته باشد، به طور مطمئن تخصیص یابد.

    این کار می‌تواند هنگامیکه مشتریان از استفاده انفجاری خود بی‌خبر بوده و احتمالا هفته‌ها این کار را انجام دهند، مشکل ایجاد کند. در برخی مواقع، مستأجر دیگری که تشنه CPU است، از راه رسیده و از CPU بیکار اضافی نیز استفاده می‌کند. این امر برای مستاجر اول که افت کارایی را تجربه کرده و احتمالا از آن ناراضی است، پردازنده کمتری در اختیار قرار می‌دهد. این وضعیت شبیه به پروازهای اقتصادی برای یک ماه است، اما اگر آنقدر خوش شانس باشید که همیشه یک ردیف کامل برای خود داشته باشید، سوار یک پرواز کامل می‌شوید.

    اشتراک گذاری CPU


    اشتراک گذاری را می توان از طریق زمانبندی سهم عادلانه (FSS) برای تقسیم مناسب منابع CPU بین مهمانان استفاده نمود. اشتراک گذاری را می‌توان به طور دلخواه تخصیص داده و برای محاسبه مقدار CPU مهمان مشغول در یک زمان معین با استفاده از فرمول استفاده نمود:

    guest CPU=all CPUs x guest shares/total busy shares on system

    سیستمی را در نظر بگیرید که 100 سهم دارد و به چند مهمان اختصاص داده شده است. در یک لحظه ، فقط مهمانان A و B منابع CPU را می‌خواهند. مهمان A ده سهم دارد و مهمان B سی سهم. بنابراین مهمان A می تواند از 25٪ از کل منابع CPU روی سیستم استفاده کند: همه CPU ها* 10/(10 + 30).

    برای Joyent، به هر مهمان تعدادی سهم برابر با حجم حافظه آن برحسب مگابایت (و بنابراین نسبت به قیمت پرداخت شده) داده می‌شود. سیستم‌هایِ دو برابر اندازه، دو برابر هزینه دارند و بنابراین دو برابر بیشتر از CPU سهام دریافت می‌کنند. این امر باعث می‌شود منابع CPU به طور عادلانه بین افرادی که به آنها نیاز دارند و هزینه آنها را پرداخت کرده‌اند، تقسیم گردد. از سرپوش‌های CPU نیز برای محدود کردن استفاده انفجاری استفاده می‌شود به طوریکه وضعیت از کنترل خارج نشود.





    نویسنده : شرکت مهندس پیشگان آزمون افزار یاس