الگوریتم لود بالانسینگ روشی برای توزیع بار ترافیکی بین منابع یا سرورهای مختلف در یک سیستم موازی یا شبکهای است. هدف اصلی این الگوریتم، حداکثر کردن بهرهوری منابع و کاهش زمان انتظار برای کاربران است.
وقتی که سیستم با بار ترافیکی زیادی مواجه میشود، بعضی از سرورها ممکن است به حداکثر ظرفیت خود برسند و دیگر قادر به پاسخگویی به درخواستها نباشند. در این مواقع، اگر بار کاری به صورت یکنواخت به سرورها توزیع نشود، تعداد زیادی از منابع در حالت آمادهبهکار بیاستفاده باقی خواهند ماند و برخی دیگر از سرورها به علت بار زیاد، از کار افتاده یا کند خواهند شد. به منظور جلوگیری از این مشکلات، از الگوریتمهای لود بالانسینگ استفاده میشود.
الگوریتمهای لود بالانسینگ به این صورت کار میکنند که درخواستها را به صورت متناوب و یا بر اساس یک پالیسی خاص به منابع مختلف توزیع میکنند. این توزیع بار کاری باعث میشود تا بار کاری بهطور متوازن و منظم بین سرورها توزیع شود و همچنین از منابع بیشتری استفاده گردد.
الگوریتم لود بالانسینگ چیست؟
متعادل کننده بار یا لود بالانسر، به انگلیسی Load Balancer، به نرم افزار یا دستگاه سختافزاری گفته میشود که از سربار بیش از حد سرور جلوگیری میکند. الگورتیم لود بالانسینگ نیز به منطقی اشاره دارد که یک متعادل کننده بار برای توزیع ترافیک شبکه بین سرورها از آن استفاده میکند (الگوریتم مجموعه ای از قوانین از پیش تعریف شده است).
دو رویکرد اصلی برای لود بالانسینگ وجود دارد:
1. لود بالانسینگ استاتیک که ترافیک را صرفاً توزیع میکند. برخی از الگوریتمهای استاتیک براساس ترتیببندی مشخص یا تصادفی، مقدار مساوی از ترافیک را به سمت سرورها ارسال میکنند.
2. لود بالانسینگ داینامیک که از الگوریتمهایی استفاده میکند که وضعیت فعلی هر سرور را در نظر گرفته و ترافیک را بر اساس آن توزیع میکند.
انواع الگوریتم های لود بالانسینگ
الگوریتم های استاتیک
Round Robin: با استفاده از DNS، ترافیک را به لیستی از سرورهای در چرخش توزیع میکند. یک نیمسرور (nameserver) معتبر، برای یک دامین دارای لیستی از رکوردهای مختلف است که برای هر درخواست DNS، یکی از آنها را در پاسخ ارائه میدهد.
Weighted Round Robin: به مدیر سیستم این اجازه را میدهد تا وزنهای مختلفی را به هر سرور اختصاص دهد. سرورهایی که وزن بیشتری داشته باشند، ترافیک بیشتری نیز دریافت خواهند نمود. وزن را میتوان در رکوردهای DNS کانفیگ کرد.
IP Hash: آدرس IP منبع و مقصد ترافیک ورودی را ترکیب میکند و از یک تابع ریاضی برای تبدیل آن به hash استفاده میکند. براساس hash، اتصال به یک سرور خاص اختصاص داده میشود.
الگوریتم های داینامیک
Least Connection: این الگوریتم بررسی میکند که کدام سرورها کمترین اتصالات باز را دارند تا ترافیک به سمت آنها ارسال شود. در این الگوریتم فرض بر آن است که همهی اتصالات به قدرت پردازشی تقریباً برابری احتیاج دارند.
Weighted Least Connection: به مدیران سیستم این امکان را میدهد که وزنهای متفاوتی را به هر سرور اختصاص دهند، با این فرض که برخی از سرورها میتوانند از اتصالات بیشتری نسبت به سایرین برخوردار باشند.
Weighted Response Time: میانگین زمان پاسخگویی هر سرور را نشان میدهد و آن را با تعداد اتصالاتی که هر سرور باز میکند ترکیب مینماید تا مشخص کند که ترافیک باید به کجا ارسال شود. این الگوریتم با ارسال ترافیک به سرورها در سریعترین زمان پاسخگویی، خدمات سریعتری را به کاربران ارائه میکند.
مبتنی بر منابع (Resource-Based): بار را بر اساس منابعی که هر سرور در آن زمان در دسترس دارد توزیع میکند. نرم افزار agent که روی هر سرور اجرا میشود، CPU و حافظه موجود سرور را اندازهگیری می کند. لود بالانسر نیز قبل از توزیع ترافیک، به agent درخواست ارسال میکند.