Кіріспе
Жұмыс жүктемелерін бірнеше есептеу ресурстары бойынша таратуды жақсартуға арналған әдістер жиынтығы. Есептеуде жүктемені теңгерту – бұл тапсырмалар жиынтығын ресурстар жиынтығына (есептеу бірліктеріне) бөлу процесі, олардың жалпы өңдеуін тиімдірек ету мақсатымен. Жүктемені теңгерту жауап беру уақытын оңтайландыруға және кейбір есептеу түйіндерінің артық жүктелуіне және басқаларының бос тұруына жол бермейді. Жүктемені теңгерту параллель компьютерлер саласында зерттелетін тақырып. Екі негізгі тәсіл бар: статикалық алгоритмдер, ол әртүрлі машиналардың күйін ескермейді, және динамикалық алгоритмдер, олар көбінесе жалпылама және тиімдірек, бірақ әртүрлі есептеу бірліктері арасында ақпарат алмасуды талап етеді, бұл тиімділіктің төмендеуіне әкелуі мүмкін.
In computing, load balancing is the process of distributing a set of tasks over a set of resources (computing units), with the aim of making their overall processing more efficient. Load balancing can optimize response time and avoid unevenly overloading some compute nodes while other compute nodes are left idle. Load balancing is the subject of research in the field of parallel computers. Two main approaches exist: static algorithms, which do not take into account the state of the different machines, and dynamic algorithms, which are usually more general and more efficient but require exchanges of information between the different computing units, at the risk of a loss of efficiency.
Проблеманың жалпы көрінісі
Жүк тепе-теңдік алгоритмі әрқашан нақты бір мәселені шешуге тырысады. Басқа нәрселермен қатар, тапсырмалардың сипаты, алгоритмдік күрделілігі, алгоритмдер жұмыс істейтін аппараттық архитектура және қажетті қатеге төзімділік ескерілуі керек. Сондықтан, қолданбаның нақты талаптарын ең жақсы қанағаттандыру үшін компромисс табу қажет.
Тапсырмалардың сипаты
Жүктеме теңгерту алгоритмдерінің тиімділігі тапсырмалардың ерекшеліктеріне тікелей байланысты. Сондықтан, шешім қабылдау кезінде тапсырмалар туралы қаншалықты көп ақпарат болса, оңтайландыру мүмкіндігі де соншалықты артады.
Тапсырмалардың көлемі
Әрбір тапсырманың орындалу уақытын толық білу жүктемені оңтайлы бөлуге мүмкіндік береді (prefix sum алгоритмін қараңыз). Өкінішке орай, бұл шындығында идеалды жағдай. Әрбір тапсырманың орындалу уақытын нақты білу өте сирек кездеседі. Сондықтан, әртүрлі орындалу уақыттарын анықтау үшін бірнеше техника бар. Біріншіден, егер тапсырмалардың көлемі салыстырмалы түрде біртекті болса, олардың әрқайсысы шамамен орташа орындалу уақытын қажет етеді деп санауға болады. Алайда, егер орындалу уақыты өте ретсіз болса, одан да күрделі техникаларды қолдану қажет. Бір техника – әрбір тапсырмаға қосымша мәліметтер (метадеректер) қосу. Бұрынғы орындалу уақытына және ұқсас қосымша мәліметтерге сүйене отырып, болашақ тапсырмалар үшін статистикалық деректер негізінде болжам жасауға болады.
Тәуелділік
Кейбір жағдайларда тапсырмалар бір-біріне тәуелді болады. Осы тәуелділіктерді бағытталған ациклді график арқылы көрсетуге болады. Интуитивті түрде, кейбір тапсырмалар басқалары аяқталмайынша бастала алмайды. Егер әрбір тапсырмаға қажетті уақыт алдын ала белгілі болса, орындалудың ең тиімді реті жалпы орындалу уақытын ең төменгі деңгейге түсіруге тиіс. Дегенмен, бұл NP-қиын мәселе болып табылады, сондықтан оны дәл шешу қиынға соғуы мүмкін. Жұмыс жоспарлаушы сияқты алгоритмдер метаэвристикалық әдістерді пайдаланып, тапсырмаларды ең тиімді таратуды есептейді.
Тапсырмаларды бөлу
Жүктілікті теңдестіру алгоритмін жобалау үшін маңызды міндеттердің тағы бір ерекшелігі – олардың орындалу барысында кішігірім тапсырмаларға бөліну қабілеті. Кейін таныстырылатын "Ағаш тәрізді есептеу" алгоритмі осы ерекшелікті толыққанды пайдаланады.
Статикалық
Жүктемені теңдестіру алгоритмі "статикалық" деп аталады, егер ол міндеттерді тарату үшін жүйенің күйін ескермесе. Осылайша, жүйе күйіне белгілі бір процессорлардың жүктеме деңгейі (кейде тіпті артық жүктеме) сияқты өлшемдер кіреді. Керісінше, кіріс міндеттерінің келу уақыты және ресурстық талаптары сияқты, жүйе туралы алдын ала болжамдар жасалады. Сонымен қатар, процессорлардың саны, олардың қуаты және байланыс жылдамдығы белгілі болады. Сондықтан, статикалық жүктеме теңдестірудің мақсаты – белгілі бір өнімділік функциясын азайту үшін белгілі міндеттерді қолжетімді процессорлармен байланыстыру болып табылады. Бұл жердегі өзекті мәселе – осы өнімділік функциясының түсінігі. Статикалық жүктеме теңдестіру техникалары көбінесе маршрутизатор немесе Мастер деп аталатын орталықтандырылған құрылымға негізделген, ол жүктемені бөліп, өнімділік функциясын оңтайландырады. Бұл азайту таратылатын міндеттерге қатысты ақпаратты ескере алады және күтілетін орындалу уақытын анықтайды. Статикалық алгоритмдердің артықшылығы – оларды орнату оңай және егер міндеттер біркелкі болса (мысалы, веб-сайттан HTTP сұраныстарын өңдеу сияқты), өте тиімді. Дегенмен, міндеттерді тағайындаудағы кейбір статистикалық ауытқулар есептеу бірліктерінің артық жүктелуіне әкелуі мүмкін.
Динамикалық
Статикалық жүктемені бөлу алгоритмдерінен өзгеше, динамикалық алгоритмдер жүйедегі әрбір есептеу бірлігінің (немесе түйіннің) ағымдағы жүктемесін ескереді. Осы тәсілде, тапсырмалар жылдам өңдеу үшін артық жүктелген түйінден аз жүктелген түйінге динамикалық түрде көшіріледі. Бұл алгоритмдерді жобалау әлдеқайда күрделі болғанымен, олар өте жақсы нәтижелер бере алады, әсіресе тапсырмалардың орындалу уақыты бір-бірінен күрт өзгешетін жағдайларда. Динамикалық жүктемені теңгертетін архитектура көбірек модульдік болуы мүмкін, себебі жұмысты бөлу үшін арнайы түйіннің болуы міндетті емес. Егер тапсырмалар процессорға белгілі бір уақыттағы күйіне сәйкес бірегей түрде берілсе, онда ол бірегей тағайындама болып саналады. Ал егер тапсырмалар жүйенің күйіне және оның өзгеруіне қарай тұрақты түрде қайта бөлінсе, онда ол динамикалық тағайындама деп аталады. Әрине, шешім қабылдау үшін тым көп байланыс талап ететін жүктемені теңгертетін алгоритм жалпы проблеманы шешу процесін баяулату қаупі бар.
Гетерогенді машиналар
Параллельді есептеу инфрақұрылымдары көбінесе әртүрлі есептеу қуатына ие бірліктерден құралады, оларды жүктемені бөлу кезінде ескеру қажет. Мысалы, аз қуатты бірліктер есептеу көлемі аз сұрауларды қабылдауы мүмкін, немесе егер сұраулардың мөлшері біртекті болса немесе белгісіз болса, үлкен бірліктерге қарағанда аз сұраулар түсуі мүмкін.
Ортақ және үлестірілген жады
Параллель компьютерлер көбінесе екі кең санатқа бөлінеді: барлық процессорлар бір ортақ жадты пайдаланады, онда олар ақпаратты бірдей уақытта оқиды және жазады (PRAM моделі), ал әр есептеу бірлігінің жеке жады болады (таратылған жад моделі), және ақпарат хабар алмасу арқылы жіберіледі. Ортақ жадты пайдаланатын компьютерлерде жазу қақтығыстарын басқару әрбір есептеу бірлігінің жеке орындалу жылдамдығын айтарлықтай төмендетеді. Дегенмен, олар параллель жұмыс істеуге толыққанды мүмкіндік алады. Керісінше, хабар алмасу жағдайында процессорлардың әрқайсысы ең жоғары жылдамдықпен жұмыс істей алады. Бірақ, жаппай хабар алмасу кезінде барлық процессорлар байланыс фазасын бастау үшін ең баяу процессордың күтіп тұруын қажет етеді. Іс жүзінде, жүйелердің өте сирек кездесетіні осы санаттардың біріне дәл сәйкес келеді. Әдетте, процессорлардың әрқайсысы келесі есептеулерге қажетті деректерді сақтау үшін ішкі жадқа ие болады және олар бір-бірінен кейін келетін кластерлерге ұйымдастырылады. Көбінесе, осы өңдеу элементтері таратылған жад пен хабар алмасу арқылы үйлестіріледі. Сондықтан жүктемені бөлу алгоритмі параллель архитектураға қарай жасалуы керек. Әйтпесе, параллель есептеудің тиімділігі күрт төмендеу қаупі бар.
Иерархиялық жүйе
Жоғарыда көрсетілген аппараттық құрылымдарға бейімделіп, жүктемені теңдестіру алгоритмдерінің екі негізгі санаты бар. Бір жағынан, тапсырмалар "шебер" арқылы тағайындалады және "жұмыскерлер" орындайды, жұмыстарының барысы туралы шеберді хабардар етеді, ал шебер динамикалық алгоритм жағдайында жұмыс жүктемесін тағайындау немесе қайта тағайындауды өз қолына алады. Әдебиетте бұл "Шебер-Жұмыскер" архитектурасы деп аталады. Екінші жағынан, басқаруды әртүрлі түйіндер арасында бөлуге болады. Жүктемені теңдестіру алгоритмі сонда олардың әрқайсысында орындалады және міндеттерді тағайындау (сондай-ақ, қажет болған жағдайда қайта тағайындау және бөлу) жауапкершілігі бөліседі. Соңғы санатка динамикалық жүктемені теңдестіру алгоритмі жатады. Әрбір жүктемені теңдестіру алгоритмінің дизайны ерекше болғандықтан, бұрынғы айырмашылықты нақтылау қажет. Осылайша, аралық стратегия да болуы мүмкін, мысалы, әрбір кіші топ үшін "шебер" түйіндер, олар өздері жаһандық "шеберге" бағынышты. Сондай-ақ, шебер-құл және таратылған басқару стратегияларын кезектестіретін көп деңгейлі ұйымдастырулар да бар. Соңғы стратегиялар тез күрделенеді және сирек кездеседі. Дизайнерлер басқаруға ыңғайлы алгоритмдерді қалайды.
Үлкен архитектураларға бейімделу (көшіре білу)
Ұзақ мерзімде жұмыс істейтін (серверлер, бұлт) алгоритмдер контекстінде компьютерлік архитектура уақыт өте келе өзгеріп отырады. Дегенмен, әр жолы жаңа алгоритм жасау қажет емес. Сондықтан жүктемені теңдестіру алгоритмінің маңызды параметрі – оның масштабталатын аппараттық архитектураға бейімделу қабілеті. Бұл алгоритмнің масштабталуы деп аталады. Алгоритмнің өнімділігі берілген параметрдің мөлшеріне салыстырмалы түрде тәуелсіз болған жағдайда, ол параметрге қатысты масштабталатын болып есептеледі. Егер алгоритм есептеу бірліктерінің өзгеретін санына бейімделе алса, бірақ орындалу алдында олардың саны белгілі болуы керек, онда ол қалыптасқан (moldable) деп аталады. Ал егер алгоритм орындалу барысында процессорлардың саны өзгеріп отырса, онда ол икемді (malleable) болып саналады. Көптеген жүктемені теңдестіру алгоритмдері кем дегенде қалыптасқан болады.
Қатеге төзімділік
Әсіресе, үлкен есептеу кластерлерінде бір ғана компонент бұзылса, оған төтеп бере алмайтын параллель алгоритмді іске қосу мүмкін емес. Сондықтан, процессорлардың істен шығуын анықтап, есептеу процесін қайта жандандыра алатын қатеге төзімді алгоритмдер жасалып жатыр.
Тапсырмаларды толық білетін статикалық бөлу: префикс сомасы
Егер тапсырмалар бір-бірінен тәуелсіз болса және олардың орындалу уақытын бөліп, тапсырмаларды үлестіруге болады, онда қарапайым және оңтайлы алгоритм бар. Тапсырмаларды әр процессорға бірдей есептеу жүктемесін беру үшін бөліп, нәтижелерді біріктіру ғана қалады. Алдын ала сома алгоритмін қолдану арқылы мұндай үлестіруді процессорлар санына қатысты логарифмдік уақытта есептеуге болады. Бірақ, егер тапсырмаларды бөлу мүмкін болмаса (яғни, олар атомдық болса), тапсырмаларды оңтайландыру қиын мәселе болғанымен, әрбір түйін орындаған жалпы есептен әлдеқайда кіші болған жағдайда, тапсырмалардың салыстырмалы түрде әділ таралуын шамалауға болады.
Шебер-жұмыскерлер схемасы
Master Worker схемалары – ең қарапайым динамикалық жүктемені теңестіру алгоритмдерінің бірі. Мастер жұмыс жүктемесін барлық жұмысшыларға (кейде "құлдар" деп те аталады) бөліп береді. Бастапқыда барлық жұмысшылар бос күйде болады және оны мастерге хабарлайды. Мастер жұмысшылардың сұраныстарын қабылдап, оларға тапсырмалар таратады. Оған берілетін тапсырмалар біткенде, ол жұмысшыларға тапсырма сұрауын тоқтатуды хабарлайды. Бұл жүйенің артықшылығы – жүктемені өте әділ бөлуі. Шындығында, тапсырманы орындауға қажетті уақытты ескермесе, орындалу уақыты жоғарыда көрсетілген префикс сомасына шамалас болар еді. Бұл алгоритмнің кемшілігі – қажетті коммуникация мөлшері көп болғандықтан, көптеген процессорларға бейімделуі қиын. Бұл масштабталу мүмкін еместігі оны өте үлкен серверлерде немесе өте үлкен параллельді компьютерлерде жылдам пайдасыз етеді. Мастер тұйыққа тірейтін фактор болып табылады. Дегенмен, алгоритмнің сапасын әртүрлі процессорлар қолдана алатын тапсырмалар тізімімен алмастыру арқылы едәуір жақсартуға болады. Бұл алгоритмді жүзеге асыру біршама қиын болғанымен, ол өте үлкен есептеу орталықтары үшін де жеткіліксіз болса да, әлдеқайда жақсы масштабталуға мүмкіндік береді.
Иерархиялық емес архитектура, жүйені білмеу: жұмысты ұрлау
Тапсырманы орындауға қажетті уақыт белгісіз болғанда масштабталу мәселелерін шешудің тағы бір тәсілі – жұмыс ұрлау. Бұл тәсіл әрбір процессорға кездейсоқ немесе алдын ала анықталған тәртіппен белгілі бір мөлшерде тапсырмалар беруден тұрады, содан кейін бос процессорларға жұмыс істеп тұрған немесе артық жүктелген процессорлардан жұмыс "ұрлауға" рұқсат беріледі. Бұл ұғымның бірнеше іске асырылуы бар, олар тапсырмаларды бөлу моделімен және процессорлар арасындағы алмасуды анықтайтын ережелермен сипатталады. Бұл техника өте тиімді болуы мүмкін, бірақ оны іске асыру қиын, себебі процессорлардың негізгі жұмысы проблеманы шешу орнына байланысқа жұмсалмауына кепілдік беру қажет. Атомдық тапсырмалар жағдайында екі негізгі стратегияны ажыратуға болады: төмен жүктемелі процессорлар өздерінің есептеу қуатын ең жоғары жүктемелі процессорларға ұсынады, ал ең көп жүктемелі процессорлар өздеріне жүктелген жұмысты азайтуға тырысады. Желіде үлкен жүктеме болған кезде, ең аз жүктемелі процессорлар қолжетімділігін ұсыну тиімдірек екендігі көрсетілді, ал желіде жүктеме аз болған кезде, ең бос процессорлардан қолдауды қажет ететін артық жүктелген процессорларға көмек көрсетіледі. Бұл тәсіл алмасылатын хабарламалар санын шектейді. Егер бастапқыда бір үлкен тапсырма болса, оны атомдық деңгейден артық бөлу мүмкін болмаса, "Ағаш тәрізді есептеу" деп аталатын өте тиімді алгоритм бар, онда бас тапсырма жұмыс ағашына таратылады.
Принцип
Бастапқыда көптеген процессорларда бос тапсырма болады, тек біреуі оны тізбектей орындайды. Бос процессорлар басқа процессорларға (қажетті түрде белсенді емес) кездейсоқ сұраулар жібереді. Егер соңғысы өңдеп жатқан тапсырманы бөлуге қабілетті болса, ол өз жұмысының бір бөлігін сұрау жіберген түйінге жібереді. Әйтпесе, ол бос тапсырманы қайтарады. Бұл ағаш тәрізді құрылымды тудырады. Содан кейін, қосалқы тапсырма аяқталған кезде, оның бас процессорға аяқталу сигналын жіберу қажет, содан кейін ол ағаш түбіне жеткенше өзінің бас процессорға хабар жібереді. Бірінші процессор, яғни түбір, аяқталған кезде, жаһандық аяқталу хабары таратылуы мүмкін. Соңында, ағаш бойымен жоғары көтеріліп, нәтижелерді жинақтау қажет.
Тиімділік
Мұндай алгоритмнің тиімділігі, егер жұмысты бөлу және байланыс уақыты атқарылатын жұмыққа қарағанда тым жоғары болмаса, префикс сомасына жақын болады. Қатты байланыс шығындарынан сақтану үшін, ортақ жадта жұмыстар тізімін қарастыруға болады. Сондықтан, сұрау тек бас процессордың талабы бойынша осы ортақ жадтан белгілі бір орыннан оқылады.
Пайдалану жағдайлары
Параллель есептеулер арқылы тиімді мәселелерді шешуге қоса, жүктемені теңдестіру алгоритмдері HTTP сұраныстарын басқаруда кеңінен қолданылады, мұнда үлкен аудиториясы бар сайт секундына көптеген сұраныстарды қабылдауға мүмкіндік болуы керек.
Интернетке негізделген қызметтер
Жүктілікті теңдестірудің ең көп қолданылатын қолданбаларының бірі – бірнеше серверден бір ғана интернет-қызметін ұсыну, кейде «серверлік ферма» деп аталады. Көбінесе жүктілігі теңдестірілетін жүйелерге танымал веб-сайттар, ірі Интернет-релелік байланыс (IRC) желілері, жоғары өткізгіштікке ие Файлдарды беру протоколы (FTP) сайттары, Желілік жаңалықтарды тарату протоколы (NNTP) серверлері, Домендік атаулар жүйесі (DNS) серверлері және деректер базалары жатады.
Дөңгелек DNS
Round robin DNS - арнайы бағдарламалық немесе аппараттық құрылғыны қажет етпейтін жүктемені бөлудің баламалы әдісі. Бұл техникада бір домендік атаумен бірнеше IP-адрес байланыстырылады; клиенттерге IP-адрестер дөңгелек тізбек бойынша беріледі. IP-адрестер клиенттерге қысқа мерзімге беріледі, сондықтан клиент келесі жолы сұралған интернет-қызметке кіргенде басқа IP-адресті пайдалануы мүмкін.
Клиенттің жағында кездейсоқ жүктемені теңестіру
Жүкті теңестірудің тағы бір тәсілі – клиентке серверлердің IP-адрестерінің тізімін беру, содан кейін клиент әрбір қосылымда тізімнен кездейсоқ IP-адресті таңдасын. Бұл, негізінен, барлық клиенттердің шамалас жүктеме тудыруына және үлкен сандар заңына сүйенуді білдіреді. Кейбір қолданбалар осы мәселеге қатысты иммунитетпен бағдарламаланған, жүктеме теңестіру нүктесін анықталған желіден тыс, ерекше бөлісу платформалары арқылы жылжыту арқылы. Осы функциялармен жұптасқан тізбекті алгоритмдер нақты дерекқорына тән икемді параметрлермен анықталады.
Жоспарлау алгоритмдері
Жүк тепе-теңдеушілер сұранысты қай артқы серверге жіберу керектігін анықтау үшін, жүк теңестіру әдістері деп те аталатын, көптеген жоспарлау алгоритмдерін пайдаланады. Күрделілігі аз алгоритмдерге кездейсоқ таңдау, дөңгелек бойынша таңдау немесе ең аз қосылымдар жатады. Күрделі жүк тепе-теңдеушілер сервердің жүктемесі, ең жылдам жауап уақыты, сервердің жұмыс істейтін/істемейтін күйі (кейбір бақылау тексерулері арқылы анықталады), белсенді қосылымдардың саны, географиялық орналасуы, мүмкіндіктері немесе соңғы уақытта қанша трафик жүктелгені сияқты қосымша факторларды ескере алады.
Тұрақтылық
Жүктеме теңгерілген қызметті пайдалану кезінде маңызды мәселе – пайдаланушы сессиясының бірнеше сұрауында сақталуы тиіс ақпаратты қалай басқару. Егер бұл ақпарат бір артқы серверде сақталса, кейінгі сұраулар басқа артқы серверлерге жіберілгенде оны таба алмайды. Бұл қайта есептеуге болатын кэштелген ақпарат болуы мүмкін, мұндай жағдайда басқа артқы серверге сұрауды жүктеме теңгерімі арқылы жіберу тек өнімділік мәселесін тудырады. Rbridges тұжырымдамасы алғаш рет 2004 жылы Электр және Электроника инженерлері институтына ұсынылды, ол 2005 жылы TRILL деп аталған нұсқаны қабылдамады, ал 2006 жылдан 2012 жылға дейін «Ең қысқа жол көпірлеуі» деп аталған, үйлесімсіз нұсқаны жасады. IEEE 2012 жылдың мамыр айында IEEE 802.1aq стандартын бекітті, ол сондай-ақ Ең қысқа жол көпірлеуі (SPB) деп танылады. SPB барлық байланыстардың бірнеше тең құнды жолдар арқылы белсенді болуына мүмкіндік береді, тоқырау уақытын қысқарту үшін жылдам конвергенция уақытын қамтамасыз етеді және желінің барлық жолдарында жүктемені бөлісуге мүмкіндік беру арқылы тор желі топологияларында (ішінара және/немесе толық байланысқан) жүктеме теңгеріміне көмектеседі. SPB конфигурация кезінде адам қателігін болдырмау үшін жасалған және 2-ші қабаттағы де-факто протокол ретінде Ethernet-тің «қосып, пайдалану» мүмкіндігін сақтайды.
1 бағыт
Көптеген телекоммуникациялық компаниялардың желілерінде немесе сыртқы желілерге қатынайтын бірнеше маршруттары болады. Олар желілік қанағаттандыруды болдырмау үшін трафикті бір бағыттан екінші бағытқа ауыстыруға, кейде сыртқы желілер арқылы транзит құнын төмендетуге немесе желінің сенімділігін арттыруға мүмкіндік беретін күрделі жүктеме теңгеруді пайдаланады. Жүктеме теңгеруді қолданудың тағы бір жолы – желіні бақылау шараларында. Жүктеме теңгергіштерді үлкен дерек ағындарын бірнеше кіші ағындарға бөлу үшін және әрқайсысы бастапқы деректердің бір бөлігін оқитын бірнеше желілік анализаторларды пайдалану үшін қолдануға болады. Бұл 10GbE немесе STM64 сияқты жоғары жылдамдықты желілерді бақылау үшін өте пайдалы, себебі деректерді сымдық жылдамдықпен күрделі өңдеу мүмкін болмайды.
Деректер орталығы желілері
Жүктеме теңгерімі деректер орталығы желілерінде кез келген екі сервер арасындағы бар жолдар арқылы трафикті тарату үшін кеңінен қолданылады. Ол желілік өткізу қабілетін тиімді пайдалануға және жабдықтау шығындарын азайтуға мүмкіндік береді. Жалпы алғанда, деректер орталығы желілеріндегі жүктеме теңгерімі статикалық немесе динамикалық болып жіктеледі. Статикалық жүктеме теңгерімі трафик ағынының бастапқы және түменгі мекенжайлары мен порт нөмірлерін хэштей отырып, трафикті бөледі және ағындардың қолданыстағы жолдардың біріне қалай тағайындалатынын анықтайды. Динамикалық жүктеме теңгерімі әртүрлі жолдардағы өткізу қабілетін бақылап, трафик ағындарын жолдарға тағайындайды. Динамикалық тағайындамалар алдын ала немесе реактивті болуы мүмкін. Алғашқы жағдайда тағайындама бір рет жасалса, екінші жағдайда желі логикасы қолжетімді жолдарды үздіксіз бақылап отырады және желі жүктемесі өзгерген кезде (жаңа ағындар келгенде немесе қолданыстағылар аяқталғанда) ағындарды оларға ауыстырады. Деректер орталығы желілеріндегі жүктеме теңгеріміне толық шолу жасалды.