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

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

توزیع بار در شبکههای محلی بزرگ از جمله شبکههای مراکز داده یا مجتمعهای اداری بزرگ نیز استفاده میشود. در گذشته این امر بدون یاری دستگاههای سختافزاری مانند کنترلر تحویل برنامه یا دستگاه توزیع بار اختصاصی امکانپذیر نبود. توزیعکنندگان بار نرمافزاری نیز بههمین علت استفاده میشوند.
نظارت بر سرور چیست؟
توزیعکنندگان بار پویا همواره سلامت سرورها که شامل مواردی همچون وضعیت فعلی سرور، نحوه عملکرد و… است را بررسی میکنند. وقتی سلامت سرور بهشکل منظم بررسی شود نظارت بر سرور انجام میگیرد. اگر یک یا چند سرور کند شوند، لود بالانسر ترافیک کمتری را به همان سرورها ارجاع میدهد. اگر هم یک سرور یا چند سرور کامل از کار بیفتند توزیعکننده بار ترافیک را به سرورهای دیگری منتقل میکند. به این فرآیند انتقال خودکار میگویند.
انتقال خودکار چیست؟
انتقال خودکار زمانی رخ میدهد که سروری از کار بیفتد و توزیعکننده بار وظایف سرور را به سروری ثانویه یا چند سرور دیگر ارجاع دهد. انتقال خودکار در ثبات سرور بسیار مهم است چرا که اگر سروری جایگزین در کار نباشد سرور بهکلی از کار میافتاد و منجر میشود وبسایت یا برنامه از دسترس خارج شود. بههمینمنظور مهم است که انتقال خودکار بهسرعت انجام شود تا در سرویس وقفهای نیفتد. منبع
برای اطلاعات بیشتر و مشاوره با کارشناسان ابرآمد، با ما در تماس باشید:
- لود بالانسینگ دقیقا چه مشکلی را حل میکند؟
لود بالانسینگ باعث میشود بار ترافیک روی یک سرور جمع نشود. درخواستها بین چند سرور پخش میشوند تا سرعت افت نکند، سرورها به نقطهٔ گلوگاه نرسند و اگر یکی از آنها از کار افتاد، کاربران بدون وقفه روی سرورهای سالم هدایت شوند. نتیجهاش پایداری بهتر و تجربه کاربری روانتر است.
- تفاوت الگوریتمهای ایستا و پویا در توزیع بار چیست؟
الگوریتمهای ایستا مثل «Round Robin» بدون توجه به وضعیت لحظهای سرورها، درخواستها را طبق یک الگوی ثابت پخش میکنند. ساده و سریع هستند اما اگر یک سرور کند شود، ترافیک بدی روی آن جمع میشود. در مقابل، الگوریتمهای پویا، وضعیت واقعی سرورها را بررسی میکنند؛ مثلاً تعداد اتصالها یا میزان بار کاری و ترافیک را هوشمندانه به سرورهای خلوتتر میفرستند. این روش کارآمدتر است اما تنظیمات پیچیدهتری دارد.
- لود بالانسر چطور متوجه میشود یک سرور مشکل دارد؟
لود بالانسر مرتب سرورها را بررسی میکند (Health Check). اگر سروری کند پاسخ دهد، خطا بدهد یا از دسترس خارج شود، بلافاصله آن را از چرخه خارج میکند و درخواستها را به سرورهای سالم میفرستد. این فرآیند همان «انتقال خودکار» است که مانع قطعی سرویس میشود.
این مقاله را به اشتراک بگذارید