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


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


  • کارایی حافظه

    کارایی حافظه

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

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

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

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

     حافظه مقیم : حافظه ای که در حال حاضر در حافظه اصلی می‌باشد.

      فضای آدرس : زمینه حافظه برای هر فرآیند و برای هسته فضای آدرس مجازی وجود دارد.

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

      OOM: هنگامی که هسته، حافظه کمِ موجود را تشخیص می دهد، خارج از حافظه است.

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

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

     صفحه بندی : انتقال صفحات بین حافظه اصلی و دستگاه های ذخیره سازی.

      مبادله : انتقال کل فرایندها بین حافظه اصلی و دستگاههای مبادله است. لینوکس اغلب از مبادله برای اشاره به صفحه بندی به دستگاه مبادله (انتقال صفحات مبادله) استفاده می‌کند. در این جا از تعریف اصلی استفاده شده است: مبادله برای کل فرایندها است.

      فضای مبادله :  یک ناحیه روی دیسک برای داده های ناشناس صفحه بندی شده و فرآیندهای جایگزین شده می باشد. ممکن است ناحیه ای در دستگاه ذخیره سازی باشد که به آن دستگاه مبادله فیزیکی نیز می گویند یا سیستم فایل، که فایل مبادله نامیده می شود. برخی ابزارها از واژه swap برای اشاره به حافظه مجازی (که گیج کننده و نادرست است) استفاده می کنند.

    موارد زیر گزیده ای از مفاهیم مهم در مورد حافظه و کارایی حافظه است:

    حافظه مجازی

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

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

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

    هسته ممکن است محدودیتی برای اشتراک بیش از حد اعمال کند. در هسته های مبتنی بر Solaris این اندازه برابر است با اندازه حافظه اصلی و دستگاه های مبادله فیزیکی. هسته در تخصیص هایی که سعی می کنند از این حد فراتر رود، شکست می‌خورد، مانند خطای “out of virtual memory” که البته در ابتدا می‌تواند باعث سردرگمی شوند زیرا حافظه مجازی خود یک منبع انتزاعی است.

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

    صفحه بندی

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

     برنامه های بزرگتر از حافظه اصلی برای اجرا

     حرکت کارآمد برنامه ها بین حافظه اصلی و دستگاه های ذخیره سازی

    این توانایی ها امروزه نیز صادق است. برخلاف تعویض کل برنامه ها، صفحه بندی یک روش دقیق برای مدیریت و آزادسازی حافظه اصلی است زیرا واحد اندازه صفحه نسبتاً کوچک است (4KB). صفحه بندی با حافظه مجازی (paged virtual memory) از طریق BSD به یونیکس معرفی گردیده و استاندارد شد.

    صفحه بندی سیستم فایل

    صفحه بندی سیستم فایل در اثر خواندن و نوشتن صفحات در پرونده های دارای حافظه ایجاد می‌شود. این رفتار عادی برای برنامه هایی است که از نگاشت های حافظه فایل یعنی mmap() استفاده می‌کنند و همچنین در سیستم‌های فایلی که از حافظه پنهان صفحه استفاده می‌کنند. در صورت نیاز ، هسته می تواند حافظه را با صفحه بندی کردن برخی از موارد آزاد کند. اینجاست که اصطلاحات کمی پیچیده می شود: اگر صفحه سیستم فایل در حافظه اصلی تغییر کرده باشد ("کثیف ")، صفحه خروجی نیاز به نوشتن روی دیسک دارد. اگر در عوض، صفحه سیستم فایل تغییر نکرده باشد ("تمیز ") ، صفحه خارج شده فقط حافظه را برای استفاده مجدد فورا آزاد می کند، زیرا یک نسخه قبلاً روی دیسک وجود دارد. به این دلیل ، اصطلاح page-out به این معنی است که یک صفحه به خارج از حافظه منتقل شده است. این ممکن است شامل نوشتن به یک دستگاه ذخیره سازی باشد یا نباشد.

    صفحه بندی ناشناس

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

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

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

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

    تقاضای صفحه بندی

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

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

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

    A.تخصیص داده نشده

    B.تخصیص یافته، اما بدون نگاشت

    C.اختصاص داده شده، و به حافظه اصلی نگاشت شده است(RAM)

    D.اختصاص داده شده و به دستگاه swap فیزیکی نگاشت شده است.

    اگر صفحه به دلیل فشار حافظه سیستم صفحه بندی شود ، به حالت (D) می رسد. انتقال از (B) به (C) خطای صفحه است. اگر به ورودی/خروجی دیسک نیاز داشته باشد ، خطای اصلی صفحه است. در غیر این صورت ، خطای جزئی صفحه است. از حالتهای فوق، می توان دو اصطلاح را در حافظه تعریف کرد:

     Resident set size (RSS): اندازه صفحات اصلی حافظه اختصاص داده شده (C)

     Virtual memory size: اندازه تمام ناحیه های اختصاص داده شده (B + C + D)

    تقاضای صفحه بندی از طریق BSD به همراه حافظه مجازی صفحه بندی شده به یونیکس اضافه شد.

    تخصیص بیش از حد

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

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

    در لینوکس ، رفتار overcommit می تواند با یک پارامتر قابل تنظیم پیکربندی شود.

    مبادله

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

    برای تعویض یک فرایند ، تمام داده های خصوصی آن باید در دستگاه مبادله، از جمله ساختارهای نخ (thread) و فرآیند (داده های ناشناس) نوشته شود. داده هایی که از سیستم فایل ها سرچشمه گرفته و اصلاح نشده اند، می‌توانند در صورت نیاز حذف شده و دوباره از مکان های اصلی خوانده شوند.

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

    مبادله به شدت به کارایی آسیب می رساند، زیرا فرآیندی که جایگزین شده است ، نیاز به ورودی/خروجی دیسک های متعدد دارد تا دوباره اجرا شود. در یونیکس اولیه برای ماشینهای آن زمان، مانند PDP-11، که حداکثر اندازه پردازش 64 کیلوبایت داشت ، منطقی‌تر بود.

    در حالی که سیستم های مبتنی بر Solaris هنوز می‌توانند مبادله شوند. البته این کار را تنها در صورتی انجام می‌دهند که صفحه بندی نتواند حافظه کافی را برای نیازهای برنامه آزاد کند (زیرا صفحه بندی با سرعت اسکن صفحه محدود می‌شود). سیستم‌های لینوکس اصلاً فرآیندها را عوض نمی‌کند و فقط به صفحه بندی تکیه می‌کند.

    وقتی مردم می گویند "سیستم در حال انجام swapping است" معمولاً منظورشان صفحه بندی است. در لینوکس ، عبارت مبادله، به صفحه بندی به فایل یا دستگاه مبادله (صفحه بندی ناشناس) اشاره دارد.

    استفاده از حافظه پنهان سیستم فایل

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

    بهره وری و اشباع

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

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

    تخصیص دهندگان

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

    سایز کلمه

    پردازنده ها ممکن است از چندین اندازه کلمه همچون 32 بیتی و 64 بیتی پشتیبانی کنند. از آنجاییکه اندازه فضای آدرس با محدوده آدرس‌دهی از اندازه کلمه محدود می‌شود، برنامه‌های کاربردی که نیاز به بیش از 4 گیگابایت دارند، برای فضای آدرس 32 بیتی بزرگ هستند ولذا لازم است برای 64 بیت یا بالاتر کامپایل شوند. بسته به معماری CPU ممکن است کارایی حافظه با استفاده از عرض بیت‌های بزرگتر بهبود یابد. در مواردی که یک نوع داده دارای بیت های بلااستفاده در عرض بیت بزرگتر است، ممکن است مقدار کمی از حافظه هدر رود.





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


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

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

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

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

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

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

     مجازی سازی سخت افزار :جایی است که یک 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 کامل از پایگاه داده را در طول حداکثر بارگذاری شما انجام دهد و بر روی دیسک ورودی/خروجی شبکه شما تداخل ایجاد کند. بدتر از آن، یک همسایه می‌تواند با اجرای کدهای مربوط به معیارهای خرد که عمداً منابع را اشباع می کند تا حد خود را پیدا کند، ارائه دهنده ابر را ارزیابی کند.

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

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





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