مقیاس پذیری
در علم ارتباطات راه دور و مهندسی نرم افزار مقیاس‌پذیری ویژگی مطلوبی از یک سیستم، شبکه و یا پروسه است که به توانایی آن برای پاسخگویی به افزایش میزان بار کاری به سهولت دلالت می‌کند و یا میزان آمادگی سیستم را برای افزایش بار کاری نشان می دهد[۱]. به عنوان نمونه، مقیاس پذیری می‌تواند به توانایی یک سیستم برای افزایش عملکرد کلی در هنگام افزودن منابع(مثل سخت افزار) اشاره کند. هنگامی که این واژه در موضوعات مرتبط با کسب و کار به کار می رود نیز مفهوم مشابهی از آن برداشت می شود. مدل‌های کسب‌وکار مقیاس پذیر مدلهایی هستند که پتانسیل ایجاد رشد اقتصادی سازمان را دارند.
تعریف مقیاس پذیری به عنوان یک خصوصیت از سیستم به سادگی امکانپذیر نیست[25] و در هر مورد خاصی با توجه به ابعاد مورد اهمیت، باید نیازمندیهای جدیدی را برای مقیاس پذیری تعریف کرد. نقش مقیاس‌پذیری در طراحی و انجام سیستم ‌های پیچیده و بزرگ همچون پایگاه‌های داده‌ها، پایگاه‌های دانش، محاسبات توزیع شده، اینترنت، کاوش‌های ماشینی در داده‌ها، بینایی رایانه‌ای، و مخابرات بسیار حیاتی و عمده می‌شود. سیستمی که با افزایش ظرفیت، کارایی آن افزایش می یابد یک سیستم مقیاس پذیر خوانده می شود. یک الگوریتم، طراحی، پروتکل، برنامه رایانه ای و یا هر سیستم دیگری مقیاس پذیر خوانده می‌شود اگر برای مقیاس‌های بزرگتر هم بتواند به طرز مناسب و عملی و کارا استفاده شود[26].
مقیاس پذیری را می توان در ابعاد گوناگونی اندازه گیری کرد.
مقیاس پذیری بار کاری90 : توانایی یک سیستم توزیع شده برای گسترش یا کوچکتر سازی مخزن منابعش برای پاسخگویی به بار کاری بیشتر ویا کمتر.
مقیاس پذیری جغرافیایی 91: توانایی حفظ کارایی، مفید بودن و فابلیت استفاده، بدون توجه به تمرکز یا پراکندگی و وسعت جغرافیایی
مقیاس پذیری اجرایی92 : توانایی افزایش تعداد سازمانهایی که یک سیستم توزیع یافته را به اشتراک می گذارند.
مقیاس پذیری کارکردی93 : قابلیت ارتقای سیستم با افزایش یک یا چند کارکرد با کمترین زحمت.
مثال‌ها
یک سامانه پردازش تراکنش برخط94 مقیاس پذیر، سامانه ای است که بتواند با افزایش منابع (مانند پردازنده، فضای ذخیره سازی و…) تراکنش‌های بیشتری را پردازش کند و همچنین این ارتقاء باید به سادگی و با کمترین هزینه و بدون متوقف ساختن سامانه امکان پذیر باشد.
یک پروتکل مسیریابی نسبت به اندازه شبکه مقیاس پذیر است اگر اندازه جدول مسیریابی هر گره به اندازه OLogN افزایش یابد که در آن N تعداد گره‌های شبکه است.
طبیعت توزیع یافته سامانه نام دامنه به آن امکان می دهد که حتی با وجود سرویس دهی به تمام ایستگاه های متصل به اینترنت، بدون افت کارایی به کار خود ادامه دهد و بنابراین سامانه ای مقیاس پذیر است.
برخی پیاده سازی های همتا به همتا95 اولیه از ناتلا96 مشکل مقیاس پذیری داشتند. هر همتا درخواست خود را به صورت پرس و جوی سیلابی به تمام همتاهای دیگر می فرستد ودر نتیجه با افزایش تعداد همتاها میزان تقاضا در هر همتا افزایش می یافت و ظرفیت محدود همتاها به سرعت سرریز می شد. سایر سامانه‌های همتا به همتا مانند بیت‌تورنت به خوبی تغییر مقیاس می دهند زیرا میزان تقاضاهای هر همتا به تعداد کل همتاها بستگی ندارد[21].

تغییر مقیاس افقی و عمودی
روشهای افزایش منابع برای یک کاربرد خاص در یکی از دسته‌های زیر قرار می گیرند [24]:

تغییر مقیاس عمودی97
تغییر مقیاس عمودی که Scale up نیز گفته می شود، به معنی افزودن منابع به یک گره از سیستم – به طور نمونه ارتقای پردازنده یا رسانه ذخیره سازی در یک کامپیوتر- می باشد. افزایش بهره برداری از منابع نیز نوعی تغییر مقیاس عمودی است. به عنوان مثال می توان افزودن تعداد پروسه‌های در حال اجرای دمون98 ‌های کارساز اچ‌تی‌تی‌پی آپاچی99 را ذکر کرد.
تغییر مقیاس افقی100
به تغییر مقیاس افقی که Scale out نیز گفته می شود، به معنی افزایش گره‌های بیشتر به سیستم است. به عنوان مثال می توان از افزایش تعداد وب سرورها از یک به سه عدد نام برد.
تغییر مقیاس قطری101
به معنی تغییر مقیاس همزمان افقی و عمودی می باشد.

مقیاس پذیری پایگاه داده‌ها
برای اینکه پایگاه داده‌ها بتواند بدون کاهش نرخ تراکنش بر ثانیه به اندازه‌های بسیار بزرگ افزایش یابند چندین دیدگاه مختلف مورد استفاده قرار می گیرد. اگرچه نمی توان نقش پیشرفت های سخت افزاری در سرعت و ظرفیت رسانه‌های ذخیره سازی و پردازنده‌ها و شبکه را دست کم گرفت اما فرای آن شیوه‌های متعدد معماری نیز در پیاده سازی پایگاه داده‌های بسیار بزرگ استفاده شده اند. یکی از تکنیک هایی که در اغلب سیستم‌های مدیریت پایگاه داده‌ها استفاده می‌شود پارتیشن بندی جداول بزرگ بر اساس طیف مقادیر فیلدهای کلیدی است. در این شیوه می توان با افزایش سرورهای پایگاه داده‌ها به صورت افقی تغییر مقیاس داد. همچنین باپیدایش ریزپردازنده ‌های 64 بیتی، پردازنده‌های چندهسته‌ای سیستم‌های بزرگ چندپردازنده ای متقارن فروشندگان سیستم ‌های مدیریت پایگاه داده‌ها امکان این را می یابند که با استفاده از چندنخی تغییر مقیاس عمودی بدهند. رسانه ذخیره سازی متصل به شبکه102 و شبکه‌های ذخیره‌سازی103 به همراه شبکه‌های پرسرعت محلی و فناوری کانال فیبر دست به دست هم داده اند تا پیکربندی های پایگاه داده‌ها و توان محاسبات توزیع شده بزرگتر با پیوند ضعیف تر104 باشند. استاندارد پر طرفدار X/Open XA از یک ناظر تراکنش سراسری برای هماهنگی میان منابع پایگاه داده نیمه-خودمختار برای اجرای تراکنش های توزیع شده بهره می برد.ORacle RAC برای تحقق مقیاس پذیری از مدل متفاوتی بر پایه معماری “همه چیز مشترک” استفاده می‌کند که تکیه بر اتصالات پرسرعت بین سرورها دارد. در حالی که فروشندگان سیستم های مدیریت پایگاه داده(DBMS)، هریک از مزایای نسبی طراحی‌های خود سخن می گویند، گروهی از شرکت‌ها و پژوهشگران محدودیت‌های ذاتی سیستم مدیریت پایگاه داده رابطه ای را مورد پرسش قرار می دهند.مثلا GigaSpaces، ادعا می کند که برای رسیدن به بالاترین حد کارایی و مقیاس پذیری به مدلی کاملا متفاوت برای دسترسی به داده های توزیع شده و پردازش تراکنش ها به نام معماری فضاپایه105 نیاز است[22]. از سوی دیگر شرکت بیس وان106 نمونه ای از رسیدن به حداکثر مقیاس پذیری بدون فاصله گرفتن از مسیر اصلی فناوریهای پایگاه داده‌ها را نشان می دهد[23]. در هردوحالت هیچ پایانی بر محدودیت‌های پایگاه داده‌ها در زمینه مقیاس پذیری به چشم نمی خورد.

طراحی برای مقیاس پذیری
اغلب توصیه می‌شود که در طراحی سیستم ها تمرکز اصلی بر مقیاس پذیری باشد تا ظرفیت. معمولاً افزودن یک گره اضافی به سیستم برای افزایش کارایی ارزان تر از اقدام به تنظیم کارایی تک تک گره‌ها برای افزایش کارایی کلی سیستم می باشد. اما این شیوه الزاما بهینه نیست(مطابق آنچه که در مهندسی کارایی بحث می شود). مثال : فرض کنید که سرعت اجرای بخشی از یک برنامه اگر به صورت موازی بر روی چهار پردازنده اجرا شود تا 70% افزایش می یابد. اگرα کسری از محاسبات باشد که به صورت سری اجرا می شوند، آنگاه 1-α کسری از محاسبات خواهد بود که می تواند به صورت موازی اجرا شود. در این صورت حداکثر افزایش سرعتی که در اجرای برنامه با استفاده از P پردازنده را می توان با استفاده از قانون امدال107 بدست آورد.
1/(α+ (1-α)/P)
با جایگزینی مقادیر در این مثال عدد = 2.105 1/(0.3+ (1-0.3)/4) حاصل می شود. اگر قدرت محاسبه با افزایش تعداد پردازنده‌ها به 8 دو برابر شود، عدد=2.581 1/(0.3+ (1-0.3)/8) حاصل می شود. با دوبرابر شدن قدرت پردازش، سرعت اجرا تنها به میزان یک- پنجم افزایش می یابد. این بدین معنی است که افزودن سخت افزار لزوما شیوه بهینه ای نیست. البته اگر کل برنامه قابل موازی سازی بود انتظار می رفت که سرعت نیز دو برابر گردد.
مقیاس پذیری در محاسبات ابری
محاسبات ابری با بهره گیری از فناوری مجازی سازی گام بزرگی در جهت مقیاس پذیری برداشته است. محاسبات ابری امکان مقیاس پذیری قطری (افقی + عمودی) را فراهم می سازد. بدین صورت که مجازی سازی سیستم عامل، مقیاس پذیری عمودی و مجازی سازی زیرساخت108 ، مقیاس پذیری افقی را به همراه دارند. هزینه اجاره هزار سرور به مدت یک ساعت برابر با هزینه اجاره یک سرور به مدت هزار ساعت است[27].
تغییر مقیاس قوی و ضعیف
در مبحث محاسبات کارآمد109 دو مفهوم رایج برای مقیاس پذیری وجود دارد.اولی مقیاس پذیری قوی است که به چگونگی تغییرات در زمان حل مسئله نسبت به تغییرات در تعداد پردازنده‌ها وقتی که حجم کل مسئله ثابت است، می پردازد[27]. دومین مفهوم مقیاس پذیری ضعیف است که به بررسی چگونگی تغییرات در زمان حل مسئله نسبت به تغییرات تعداد پردازنده‌ها وقتی که حجم مسئله برای هر پردازنده ثابت است، می پردازد.
هم زمان با رشد چشمگیر تکنولوژی پردازنده ها، ابرها نیز گسترش روز افزونی پیدا کرده اند. به همین ترتیب تعداد کامپیوترهای افزوده شده به زیرساخت ابرها نیز افزایش پیدا کرده است که البته قابل ذکر است این افزایش با توجه به تقاضای روز افزون کاربران برای میزبانی این منابع می باشد. منابع ابری برای کاربران نامحدود بوده و کاربران تنها محدودیت مالی برای خرید این منابع را پیش رو دارند. پس می توان نتیجه گرفت که یکی از مهم ترین این چالش ها در این زمینه مقیاس پذیر بودن سیستم عامل های ابری می باشد[3].

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

دسته بندی : No category

دیدگاهتان را بنویسید