مقیاسپذیری
الگو:سامانه پیچیده در علم ارتباطات راه دور و مهندسی نرمافزار مقیاسپذیری الگو:به انگلیسی، ویژگی مطلوبی از یک سامانه، شبکه یا فرایند است که به توانایی آن برای پاسخگویی به افزایش میزان بار کاری به سهولت دلالت میکند یا میزان آمادگی سیستم را برای افزایش بار کاری نشان میدهد.[۱] به عنوان نمونه، مقیاسپذیری میتواند به توانایی یک سامانه برای افزایش عملکرد کلی در هنگام افزودن منابع (مثل سختافزار) اشاره کند. هنگامی که این واژه در موضوعات مرتبط با کسب و کار بکار میرود نیز مفهوم مشابهی از آن برداشت میشود. مدلهای کسبوکار مقیاس پذیر مدلهایی هستند که پتانسیل ایجاد رشد اقتصادی سازمان را دارند.
تعریف مقیاسپذیری به عنوان یک خصوصیت از سامانه (سیستم) به سادگی امکانپذیر نیست[۲] و در هر مورد خاصی با توجه به ابعاد مورد اهمیت باید نیازمندیهای جدیدی را برای مقیاسپذیری تعریف کرد. نقش مقیاسپذیری در طرٌاحی و انجام سامانههای پیچیده و بزرگ همچون پایگاههای دادهها، پایگاههای دانش، محاسبات گسترده (distributed computing)، اینترنت، کاوشهای ماشینی در دادهها، بینایی رایانهای، و مخابرات بسیار حیاتی و عمده میشود. سامانهای که با افزایش ظرفیت، کارایی آن افزایش مییابد یک سامانه مقیاس پذیر خوانده میشود. یک الگوریتم، طراحی، پروتکل، برنامه رایانه ای یا هر سیستم دیگری مقیاس پذیر خوانده میشود اگر برای مقیاسهای بزرگتر هم بتواند به طرز مناسب و عملی و کارا استفاده شود.
اندازهگیری مقیاسپذیری
مقیاسپذیری را میتوان در ابعاد گوناگونی اندازهگیری کرد.
- مقیاسپذیری بار کاری الگو:به انگلیسی: توانایی یک سامانه توزیع شده برای گسترش یا کوچکتر سازی مخزن منابعش برای پاسخگویی به بار کاری بیشتر ویا کمتر.
- مقیاسپذیری جغرافیایی الگو:به انگلیسی: توانایی حفظ کارایی، مفید بودن و قابلیت استفاده، بدون توجه به تمرکز یا پراکندگی و وسعت جغرافیایی
- مقیاسپذیری اجرایی الگو:به انگلیسی: توانایی افزایش تعداد سازمانهایی که یک سامانه توزیع یافته را به اشتراک میگذارند.
- مقیاسپذیری کارکردی الگو:به انگلیسی: قابلیت ارتقای سیستم با افزایش یک یا چند کارکرد با کمترین زحمت.
تعریف ساده
اگر در سیستم شما، درخواستهایی که میآیند ۱۰برابر شود، سیستم را مقیاس پذیر گوییم اگر بتواند مثلاً با ۲برابر کردن منابع خود، این تعداد درخواستها را بدون مشکل پاسخ گو باشد.
مثالها
- یک سامانه پردازش تراکنش برخط الگو:به انگلیسی مقیاس پذیر، سامانه ایست که بتواند با افزایش منابع (مانند پردازنده، فضای ذخیرهسازی و…) تراکنشهای بیشتری را پردازش کند و همچنین این ارتقا باید به سادگی و با کمترین هزینه و بدون متوقف ساختن سامانه امکانپذیر باشد.
- یک پروتکل مسیریابی نسبت به اندازه شبکه مقیاس پذیر است اگر اندازه جدول مسیریابی هر گره به اندازه OLogN افزایش یابد که در آن N تعداد گرههای شبکه است.
- طبیعت توزیع یافته سامانه نام دامنه به آن امکان میدهد که حتی با وجود سرویس دهی به تمام ایستگاههای متصل به اینترنت، بدون افت کارایی به کار خود ادامه دهد وبنا براین سامانهای مقیاس پذیر است.
- برخی پیاده سازیهای همتا به همتا الگو:به انگلیسی اولیه از ناتلا الگو:به انگلیسی مشکل مقیاسپذیری داشتند. هر همتا(Peer) درخواست خود را به صورت پرس و جوی سیلابی به تمام همتاهای دیگر میفرستد و در نتیجه با افزایش تعداد همتاها میزان تقاضا در هر همتا افزایش مییافت و ظرفیت محدود همتاها به سرعت سرریز میشد. سایر سامانههای همتا به همتا مانند بیتتورنت به خوبی تغییر مقیاس میدهند زیرا میزان تقاضاهای هر همتا به تعداد کل همتاها بستگی ندارد.
تغییر مقیاس افقی و عمودی
روشهای افزایش منابع برای یک کاربرد خاص در یکی از دستههای زیر قرار میگیرند:[۳]
تغییر مقیاس عمودی(Vertical Scaling)
تغییر مقیاس عمودی که Scale up نیز گفته میشود، به معنی افزودن منابع به یک گره (Node) از سیستم - بهطور نمونه ارتقای پردازنده یا رسانه ذخیرهسازی در یک کامپیوتر- میباشد. افزایش بهرهبرداری از منابع نیز نوعی تغییر مقیاس عمودی است. به عنوان مثال میتوان افزودن تعداد پروسههای در حال اجرای دمون الگو:به انگلیسیهای کارساز اچتیتیپی آپاچی الگو:به انگلیسی را ذکر کرد.
تغییر مقیاس افقی(Horizontal Scaling)
به تغییر مقیاس افقی که Scale out نیز گفته میشود، به معنی افزایش گرههای بیشتر به سیستم است. به عنوان مثال میتوان از افزایش تعداد وب سرورها از یک به سه عدد نام برد.
تغییر مقیاس قطری(Diagonal Scaling)
به معنی تغییر مقیاس همزمان افقی و عمودی میباشد.
مقیاسپذیری پایگاه دادهها
برای اینکه پایگاه دادهها بتواند بدون کاهش نرخ تراکنش بر ثانیه به اندازههای بسیار بزرگ افزایش بابند چندین دیدگاه مختلف مورد استفاده فرار میگیرد. اگرچه نمیتوان نقش پیشرفتهای سختافزاری در سرعت و ظرفیت رسانههای ذخیرهسازی و پردازندهها و شبکه را دست کم گرفت اما فرای آن شیوههای متعدد معماری نیز در پیادهسازی پایگاه دادههای بسیار بزرگ استفاده شدهاند. یکی از تکنیکهایی که در اغلب سیستمهای مدیریت پایگاه دادهها استفاده میشود پارتیشنبندی جداول بزرگ بر اساس طیف مقادیر فیلدهای کلیدی است. در این شیوه میتوان با افزایش سرورهای پایگاه دادهها به صورت افقی تغییر مقیاس داد. همچنین با پیدایش ریزپردازندهالگو:به انگلیسیهای ۶۴ بیتی، پردازندههای چندهستهای الگو:به انگلیسی سیستمهای بزرگ چند پردازندهای متقارن الگو:به انگلیسی فروشندگان سامانههای مدیریت پایگاه دادهها امکان این را مییابند که با استفاده از چندنخی الگو:به انگلیسی تغییر مقیاس عمودی بدهند. رسانه ذخیرهسازی متصل به شبکه الگو:به انگلیسی و شبکههای ذخیرهسازی الگو:به انگلیسی به همراه شبکههای بر سرعت محلی و فناوری کانال فیبر دست به دست هم دادهاند تا پیکربندیهای پایگاه دادهها و توان رایانش توزیع شده بزرگتر با پیوند ضعیف تر (Loosely Coupled) باشند. استاندارد پرطرفدار X/Open XA از یک ناظر تراکنش سراسری برای هماهنگی میان منابع پایگاه داده نیمه-خودمختار برای اجرای تراکنشهای توزیع شده بهره میبرد. ORacle RAC برای تحقق مقیاسپذیری از مدل متفاوتی بر پایه معماری «همه چیز مشترک» استفاده میکند که تکیه بر اتصالات پرسرعت بین سرورها دارد. درحالیکه فروشندگان سامانههای مدیریت پایگاه داده (DBMS)، هریک از مزایای تسبی طراحیهای خود سخن میگویند، گروهی از شرکتها و پژوهشگران محدودیتهای ذاتی سامانه مدیریت پایگاه داده رابطهای را مورد پرسش قرار میدهند؛ مثلاً GigaSpaces، ادعا میکند که برای رسیدن به بالاترین حد کارایی و مقیاسپذیری به مدلی کاملاً متفاوت برای دسترسی به دادههای توزیع شده و پردازش تراکنشها به نام معماری فضاپایه الگو:به انگلیسی نیاز است.[۴] از سوی دیگر شرکت بیس وان الگو:به انگلیسی نمونهای از رسیدن به حداکثر مقیاسپذیری بدون فاصله گرفتن از مسیر اصلی فناوریهای پایگاه دادهها را نشان میدهد.[۵] در هر دو حالت هیچ پایانی بر محدودیتهای پایگاه دادهها در زمینه مقیاسپذیری به چشم نمیخورد.
طراحی برای مقیاسپذیری
اغلب توصیه میشود که در طراحی سامانهها تمرکز اصلی بر مقیاسپذیری باشد تا ظرفیت. معمولاً افزودن یک گره اضافی به سامانه برای افزایش کارایی ارزانتر از اقدام به تنظیم کارایی تک تک گرهها برای افزایش کارایی کلی سامانه میباشد. اما این شیوه الزاماً بهینه نیست. (مطابق آنچه که در مهندسی کارایی بحث میشود) مثال: فرض کنید که سرعت اجرای بخشی از یک برنامه اگر به صورت موازی بر روی چهار پردازنده اجرا شود تا ۷۰٪ افزایش مییابد. اگر کسری از محاسبات باشد که به صورت سری اجرا میشوند، آنگاه کسری از محاسبات خواهد بود که میتواند به صورت موازی اجرا شود. در این صورت حداکثر افزایش سرعتی که در اجرای برنامه با استفاده از P پردازنده را میتوان با استفاده از قانون امدالالگو:به انگلیسی بهدستآورد: . با جایگزینی مقادیر در این مثال عدد حاصل میشود. اگر قدرت محاسبه با افزایش تعداد پردازندهها به ۸ دو برابر شود، عدد حاصل میشود. با دوبرابر شدن قدرت پردازش، سرعت اجرا تنها به میزان یک-پنجم افزایش مییابد. این بدین معنی است که افزودن سختافزار لزوماً شیوه بهینهای نیست. البته اگر کل برنامه قابل موازیسازی بود انتظار میرفت که سرعت نیز دو برابر گردد.
مقیاسپذیری در رایانش ابری
رایانش ابری با بهرهگیری از فناوری مجازی سازی گام بزرگی در جهت مقیاسپذیری برداشتهاست. رایانش ابری امکان مقیاسپذیری قطری (افقی + عمودی) را فراهم میسازد. بدین صورت که مجازیسازی سیستمعامل، مقیاسپذیری عمودی و مجازیسازی زیرساخت (Infrastructure)، مقیاسپذیری افقی را به همراه دارند. هزینه اجاره هزار سرور به مدت یک ساعت برابر با هزینه اجاره یک سرور به مدت هزار ساعت است.[۶]
تغییر مقیاس قوی و ضعیف
در مبحث رایانش کارآمدالگو:به انگلیسی دو مفهوم رایج برای مقیاسپذیری وجود دارد. اولی مقیاسپذیری قوی است که به چگونگی تغییرات در زمان حل مسئله نسبت به تغییرات در تعداد پردازندهها وقتی که حجم کل مسئله ثابت است، میپردازد.[۷] دومین مفهوم، مقیاسپذیری ضعیف است که به بررسی چگونگی تغییرات در زمان حل مسئله نسبت تغییرات تعداد پردازندهها وقتی که حجم مسئله برای هر پردازنده ثابت است، میپردازد.
جستارهای وابسته
- رایانش ابری
- قانون امدال الگو:به انگلیسی
- پیچیدگی مجانبی الگو:به انگلیسی
- قانون گوستاوسن الگو:به انگلیسی
- موازیسازی در رایانش الگو:به انگلیسی
- سیاهه (لیست) ویژگیهای کیفی سامانه (سیستم)
- معماری فضا پایه الگو:به انگلیسی
- رایانش کارآمد الگو:به انگلیسی
منابع
پیوند به بیرون
- نکاتی در مورد مقیاسپذیری بیسیم
- تعریف مقیاسپذیری توسط Linux Information Project
- نوشتاری درباره نوشتن برنامهنویسی سرورهای مقیاس پذیر در Java
- پیوندهایی به منابع آموزشی گوناگون
الگو:رایانش موازی الگو:موضوعات سامانههای پیچیده الگو:کیفیت نرمافزار
- ↑ André B. Bondi, 'Characteristics of scalability and their impact on performance', Proceedings of the 2nd international workshop on Software and performance, Ottawa, Ontario, Canada, 2000, الگو:ISBN, pages 195 - 203
- ↑ See for instance, Mark D. Hill, 'What is scalability?' in ACM SIGARCH Computer Architecture News, December 1990, Volume 18 Issue 4, pages 18-21, (ISSN 0163-5964) and Leticia Duboc, David S. Rosenblum, Tony Wicks, 'Doctoral symposium: presentations: A framework for modelling and analysis of software systems scalability' in Proceeding of the 28th international conference on Software engineering ICSE '06, May 2006. الگو:ISBN, pages 949 - 952
- ↑ الگو:Cite web
- ↑ GigaSpaces. "Space-Based Architecture and The End of Tier-based Computing الگو:Webarchive", 2006. Retrieved on May 23, 2007.
- ↑ Base One. "Database Scalability - Dispelling myths about the limits of database-centric architecture", 2007. Retrieved on May 23, 2007.
- ↑ پرداخت بر پایه مصرف در رایانش ابری برای دستیابی به مقیاسپذیری بر مبنای تقاضا http://www.ogf.org/OGF25/materials/1500/AvnerAlgomIGT-OGF25.pdf الگو:Webarchive
- ↑ الگو:یادکرد وب