Load Balancing چیست؟ انواع و نحوه عملکرد آن
لود بالانسینگ (Load Balancing) فرآیندی است که برای توزیع ترافیک شبکه بین سرورهای مختلف استفاده میشود. این روش فشار روی سرورها را کاهش میدهد و پاسخدهی سریعتر و تجربه کاربری بهتر را به همراه دارد. تکنولوژی Load Balancing برای عملکرد بهتر اکثر اپلیکیشنها و وبسایتها ضروری است و نبود آن باعث تاخیر در پاسخدهی و ضعف تجربه کاربری می شود. در این مقاله نحوه عملکرد این تکنولوژی و انواع الگوریتمهای مورد استفاده در آن را توضیح میدهیم.
نحوه عملکرد Load Balancing
تکنولوژی Load Balancing معمولا به وسیله ابزار یا اپلیکیشنی به نام Load Balancer مدیریت میشود. یک لود بالانسر میتواند نرمافزار یا سختافزاری باشد که به فرایند متعادل کردن بار بر روی سرورها کمک میکند. سختافزار لود بالانسر به عنوان یک دستگاه در محل دیتاسنتر و همچنین نرمافزار آن نیز بر روی سرور، ماشین مجازی و یا شبکه توزیع محتوا (CDN) نصب میشود. لود بالانسر بر اساس شماری از الگوریتمها سروری که باید درخواست را پرداش کند تشخیص می دهد و درخواست کاربر را به سمت آن سرور هدایت می کند.
سرور مجازی با پشتیبانی حرفهای!
از سرورهای مجازی پویان آی تی برای پروژههای خود استفاده کنید. با پشتیبانی ۲۴ ساعته و قیمت مناسب، اکنون بهترین زمان برای شروع است. این سرویس با بهره گیری از سخت افزار پیشرفته سیسکو، ارائه قابلیتهایی مشابه سرور اختصاصی، پورت 10Gbit/s و ترافیک یک به یک، بستری مناسب برای کسب و کارها را فراهم میکند.
الگوریتمهای لود بالانسینگ (Load Balancing Algorithms)
الگوریتمهای Load Balancing استراتژیهایی هستند که برای تقسیم بهینه درخواستها بین سرورها به کار میروند. برای مثال، فرض کنید تعدادی کارمند باید تعداد مشخصی از کارها را انجام دهند. برای فعال نگه داشتن همه و اتمام کار به بهترین نحو، باید به جای اختصاص تمام کارها به یک نفر، آنها را به طور متعادل بین افراد تقسیم کنیم تا اطمینان حاصل شود که کار به درستی انجام میشود. الگوریتمهای Load Balancing به دو دسته ایستا (Static) و پویا (Dynamic) تقسیم میشوند.
الگوریتمهای ایستا (Static Algorithms) و انواع آن
الگوریتمهای ایستا، بارهای کاری و درخواستها را بدون در نظر گرفتن وضعیت سیستم تقسیم میکنند. لود بالانسرهای ایستا از اینکه کدام سرورها کُند عمل میکنند و کدام سرورها به اندازه کافی استفاده نمیشوند، آگاهی ندارند. این لود بالانسرها بر اساس برنامه از پیش تعیین شده خود عمل میکنند و از بهروزرسانیهای سیستم اطلاعی ندارند که میتواند باعث ناکارآمد شدن آنها در برخی موارد شود. برخی از الگوریتمهای ایستا عبارتند از :
الگوریتم Round Robin
در این روش، Load Balancer درخواستها را به صورت چرخشی و متوالی در سراسر سرورها توزیع میکند. پیادهسازی این الگوریتم آسان است، اما یکی از نقاط ضعف الگوریتم Round Robin این میباشد که درخواستهای فرستاده شده توسط کاربر را در نظر نمیگیرد که میتواند باعث بارگذاری بیش از حد اطلاعات بر روی یکی از سرورها شود.
الگوریتم Weighted Round Robin
این الگوریتم بسیار مشابه الگوریتم Round Robin است. تنها تفاوت الگوریتم Weighted Round Robin در این است که دارای امتیاز وزنی میباشد و بر اساس این امتیاز وزنی، درخواستها را بر روی سرور پخش میکند. اگر امتیاز وزنی سرور پر شود و بیشتر از گنجایش خود درخواست دریافت کند، ممکن است درخواستها را رد کند یا در انتظار بگذارد.
الگوریتم Source IP Hash
در این الگوریتم برای متعادل سازی بار توزیعی بین شبکه از مقدار هش IP استفاده میشود. Hashing به فرایند تولید یک خروجی ثابت از ورودیهای متفاوت با استفاده از فرمولهای ریاضی گفته میشود. هدف از الگوریتم Source IP Hash این است که درخواستهایی که از IP مبدا میگیرند را به همان سرور منتقل دهد.
الگوریتمهای پویا (Dynamic Algorithms) و انواع آن
الگوریتمهای پویا برخلاف الگوریتمهای ایستا، در دسترس بودن، حجم کاری و سلامت هر سرور را برای تقسیم کار در نظر میگیرند. این الگوریتمها میتوانند ترافیک سرورهایی که سنگین شدند و یا عملکرد ضعیفی دارند را به سرورهایی با استفاده کمتر منتقل کنند. با این حال، این روش به دلیل عوامل مختلفی که در دسترس بودن سرورها نقش دارند، متفاوت است. این عوامل عبارتند از :
- سلامت سرورها
- ظرفیت مورد استفاده هر سرور
- مقدار وظایف در حال توزیع
الگوریتم Least Connection
در این روش، Load Balancer درخواستهایی که دریافت میشوند را به سروری که کمترین اتصال فعال را دارد، منتقل میکند. هدف این روش کاهش بار فعلی بر روی سرورها و کمک به تسریع پاسخدهی میباشد.
الگوریتم Least Response Time
استراتژی Least Response Time همان گونه که از نامش پیداست، با هدایت کردن درخواستها به سریعترین سرور پاسخدهنده، تقسیم درخواستها را مدیریت میکند.
الگوریتم Resourced-Based
الگوریتم تعادل بار مبتنی بر منبع، اطلاعات دریافتی را بر اساس منابع در دسترس هر سرور، مانند استفاده از پردازنده، حافظه و همچنین پهنای باند شبکه توزیع میکند.
نتیجه گیری
Load Balancing یک راهکار ضروری برای وبسایتها و برنامههای کاربردی پر ترافیک است. با استفاده از Load Balancing میتوان از Overload شدن سرورها جلوگیری کرد، کارایی سیستم را افزایش داد و از بروز اختلال در سرویس دهی جلوگیری کرد.
سوالات متداول
منظور از Load Balancing چیست؟
لود بالانسینگ (Load Balancing) فرایندی است که توزیع ترافیک شبکه بین سرورهای مختلف را امکانپذیر میکند. این روش فشار روی سرورها را کاهش می دهد و پاسخدهی سریعتر و تجربه کاربری بهتر را به همراه دارد.
Load Balancer ها چگونه کار می کنند؟
لود بالانسر بر اساس شماری از الگوریتمها، سروری که باید درخواست را پردازش کند مشخص و درخواست کاربر را به سمت آن سرور هدایت میکند.
به طور کلی چند دسته الگوریتم در Load Balancing استفاده می شود؟
الگوریتمهای مورد استفاده برای Load Balancing به دو دسته ایستا (Static) و پویا (Dynamic) تقسیم میشوند.
منابع
- https://www.cloudflare.com/learning/performance/what-is-load-balancing
- https://www.geeksforgeeks.org/load-balancing-algorithms
به این مقاله امتیاز دهید!
میانگین امتیاز 0 / 5. تعداد رأی ها : 0
هنوز هیچ رأیی داده نشده. اولین نفر باشید!
اولین دیدگاه را اضافه کنید.