⚖️ Балансувальник навантаження
Політики розподілу запитів
Працює
Політика: Циклічна
Політика
Трафік
Керування
Статистика
Сер. затримка
0.0
Завершено
0
У системі
0
Відкинуто
0
По серверах
Довідка та теорія

Балансувальник навантаження розподіляє вхідні запити між пулом серверів бекенду, щоб жоден не був перевантажений, поки інші простоюють. Політика вирішує, який сервер отримає кожен запит.

Політики

  • Циклічна — по черзі обходить сервери за порядком.
  • Найменше зʼєднань — серверу з найменшим числом активних запитів.
  • Зважена — швидшим серверам пропорційно більше трафіку.
  • Випадкова — рівномірно випадковий вибір сервера.

Пуассонівські надходження

Запити надходять випадково: міжприбуттєві проміжки дорівнюють −ln(U)/λ для випадкового U — класичний пуассонівський процес реального «вибухового» трафіку.

Завантаженість і затримка

Завантаженість ρ = λ/μ — частка зайнятості сервера. Теорія черг дає час очікування ∝ 1/(1 − ρ), тож затримка вибухає при ρ → 1. Циклічна політика може накопичувати черги на повільних серверах; найменше-зʼєднань адаптується, щоб тримати їх рівними.

Поширені запитання

Що робить балансувальник навантаження?

Балансувальник навантаження стоїть перед пулом серверів бекенду й вирішує, який сервер має обробити кожен вхідний запит, розподіляючи трафік так, щоб жоден сервер не був перевантажений, поки інші простоюють.

Як працює циклічне (round-robin) балансування?

Циклічна політика надсилає кожен наступний запит наступному серверу у фіксованому циклічному порядку: сервер 1, сервер 2, сервер 3, потім знову до 1. Вона проста й справедлива, коли сервери однакові, а запити коштують приблизно однаково.

Що таке балансування за найменшим числом зʼєднань?

Політика найменше-зʼєднань надсилає кожен новий запит серверу, що наразі обробляє найменше активних запитів. Вона адаптується до нерівної тривалості запитів і різної швидкості серверів значно краще за циклічну.

Що таке зважене балансування навантаження?

Зважене балансування призначає кожному серверу вагу, пропорційну до його потужності, тож швидші сервери отримують пропорційно більше запитів. Сервер з вагою 3 отримує приблизно втричі більшу частку, ніж сервер з вагою 1.

Коли прийнятне випадкове балансування навантаження?

Вибір сервера рівномірно випадково не зберігає стану й тривіальний у реалізації, а за багатьох серверів наближається до рівномірного розподілу. Варіант «сила двох випадкових виборів» — обрати два, взяти менш завантажений — працює напрочуд добре.

Що таке пуассонівські надходження?

Пуассонівські надходження моделюють незалежні випадкові моменти запитів, де проміжки між надходженнями мають експоненційний розподіл. Ця симуляція генерує їх із міжприбуттєвим часом −ln(U)/λ для випадкового U, що відповідає реальному «вибуховому» трафіку.

Чому затримка різко зростає поблизу повної завантаженості?

Теорія черг показує, що час очікування зростає як 1/(1 − ρ), де ρ — завантаженість. Коли сервер наближається до 100% зайнятості, навіть невелике зростання трафіку спричиняє вибух черг і затримки.

Що таке завантаженість сервера?

Завантаженість ρ — це частка часу, коли сервер зайнятий, що дорівнює інтенсивності надходжень, поділеній на інтенсивність обслуговування цього сервера. Понад ρ = 1 сервер не встигає, і його черга росте необмежено.

Чому циклічна політика все одно може спричинити дисбаланс?

Циклічна політика ігнорує, скільки триває кожен запит і наскільки швидкий кожен сервер. Якщо запити різняться вартістю або сервери — швидкістю, в одних серверів накопичуються черги, а інші спорожнюються, хоча кількості рівні.

Як тут вимірюється середня затримка?

Симуляція записує повний час кожного завершеного запиту — очікування в черзі плюс обслуговування — і повідомляє поточне середнє по всіх завершених запитах за чинної політики.