به صورت کلی Load balancing برای سرورهایی اهمیت دارد که در مورد آنها پیشبینی تعداد درخواستهای ارسالی به سرور دشوار میباشد. سایتهایی با بازدیدهای بالا و سایتهای دانشگاهی که نیازمند ثبت نام تعداد زیادی کاربر به صورت هم زمان میباشند از این جمله به شمار میآیند. اکثر وب سایتهای پر بازدید و معتبر به طور معمول از دو یا چند سرویس دهنده وب (Web Server) به صورت موازی جهت انجام عملیات Load Balancing استفاده مینمایند، بدین صورت که اگر میزان استفاده از منابع یک سرور بیش از حد استاندارد تعیین شده باشد، به طوری که ادامه این فعالیت باعث Down شدن و از دسترس خارج گردیدن سرور شود، درخواستها به سرور دیگری که دارای ظرفیت تحمل بار بیشتری است ارجاع میشود.
به طور کلی Load Balancer بین یک Client و Host قرار میگیرد. هنگامیکه یک Host با اختلال مواجه شده و یا Fail شود، سرویس load balancer این مشکل را شناسایی کرده و سریعا درخواستهایClient های مربوط به آن Host خارج از دسترس را به سمت Hostهای سالم راهنمایی و یا در واقع Route میکند. باید در نظر داشت که این پروسه به صورت اتوماتیک انجام میشود، بدین طریق که تمامی Connectionهای مربوط به Host مختل، قطع شده و در ادامه کار آن Clientها به Host سالم ارتباط داده میشوند. این پروسه بدون اینکه کاربر متوجه این اختلال گردد، رخ میدهد. بنابراین در مجموع در دسترس بودن سرویس نسبت به حالتی که یک سرور تنها به درخواستها پاسخ میدهد، به حداکثر رسیده و نهایتا قطعی سرورها به حداقل میرسد. تمامی پروسه شناسایی هاست مختل شده تا مسیر دهی مجدد و ایجاد ارتباط با Host سالم در کمتر از 10 ثانیه رخ میدهد، از این رو کاربر به هیچ عنوان با قطعی سرویس ناشی از Down بودن یک سرور مواجه نخواهد شد.
الگوریتم های Load Balancing، براساس معیارهای مختلفی تعیین میشوند که در آنها ارجهیت هر کدام از سرورها در پاسخگویی به درخواستهای Clientها مشخص خواهد شد. هدف این الگوریتمها توزیع هوشمندانه پردازش و یا بیشینه کردن در دسترس بودن تمامی سرورها میباشد.
انواع الگوریتم های Load Balancing عبارتند از:
این الگوریتم مستقل از تعداد Connectionهای فعال و مدت زمان پاسخ دهی آنها پردازش را بین سرورها به صورت مساوی تقسیم میکند. این الگوریتم زمانی مناسب است که توان پردازش سرورها یکسان باشد، زیرا در غیر اینصورت بعضی سرورها ممکن است بیشتر از ظرفیت خود ارسال درخواست داشته باشند، در حالیکه سرورهای قویتر فقط بخشی از منابع و امکانات خود را استفاده نمایند.
این الگوریتم توان پردازشی هر سرور را در نظر میگیرد، بدین صورت که مدیر شبکه، به صورت دستی به هر سرور یک وزن عملیاتی را اختصاص میدهد، سپس یک تواتر زمانبندی شده به صورت خودکار و بر طبق وزن هر سرور ایجاد میگردد و پس از آن درخواستها به سوی هر سرور بر طبق زمانبندی آن ارسال خواهد شد.
زمانی که الگوریتم "حداقل- اتصال" به Load Balancer اعمال میشود، درخواستهای جدید به سرور موجود با کمترین اتصال فعال در میان سرورها ارسال میگردد.
در الگوریتم Load-based، درخواستها بر اساس اینکه کدامیک از سرورها دارای حداقل بار پردازشی میباشند، ارسال میشوند.
به طور کلی فرایند Load Balancing، این امکان را فراهم میآورد که به طور چشمگیری اختلالات پردازشی سرورها مرتفع شده و قطعی و عدم دسترسی به سرویس قابل ارائه آنها به حداقل برسد. لازم به ذکر است که راهاندازی سرویس Load Balancing هم به صورت نرم افزاری و هم سخت افزاری قابل پیاده سازی میباشد.