This commit is contained in:
JulYakJul 2024-10-27 14:06:02 +04:00
parent 2bfc8a0a43
commit cae7189c1e

View File

@ -11,7 +11,7 @@
# Эссе
Для начала дам определение, что такое балансировка нагрузки. Если простыми словами, балансировка нагрузки - это процесс распределения рабочей нагрузки между несколькими вычислительными ресурсами (процессами, потоками, серверами и т.д.) таким образом, чтобы ресурсы использовались равномерно и максимально эффективно. Есть двя метода для балансировки нагрузки: Статическая балансировка и Динамическая балансировка. В случае статическаой балансировка каждый поток получает фиксированный объем работы, определенный заранее. В случае динамической балансировки объем работы для каждого ресурса может изменяться в процессе выполнения. Если один поток или узел заканчивает свою задачу быстрее других, ему можно выделить новую задачу.
К статическому методу относятся, например, алгоритмы Round Robin, Random Allocation. При алгоритме Round Robin задачи назначаются ресурсам по очереди, по кругу. Такой подход подходит, если ресурсы однородные и выполняют примерно одинаковые задачи, как в случае с веб-серверами, обрабатывающими запросы пользователей. При Random Allocation задачи распределяются случайным образом. Этот метод может используется при равномерных нагрузках и однородных ресурсах, но в случае крупных задач может быть неэффективным из-за возможного неравномерного распределения.
К статическому методу относятся, например, алгоритмы Round Robin, Random Allocation. При алгоритме Round Robin задачи назначаются ресурсам по очереди, по кругу. Такой подход важен, если ресурсы однородные и выполняют примерно одинаковые задачи, как в случае с веб-серверами, обрабатывающими запросы пользователей. При Random Allocation задачи распределяются случайным образом. Этот метод может используется при равномерных нагрузках и однородных ресурсах, но в случае крупных задач может быть неэффективным из-за возможного неравномерного распределения.
К динамическому методу относятся, например, алгритмы Least Connections и Least Response Time. Алгоритм Least Connections назначает новые задачи или запросы тому ресурсу (серверу, потоку и т.д.), у которого на данный момент наименьшее количество активных подключений или выполняемых задач. Логика основана на предположении, что ресурс с меньшим количеством задач вероятнее всего освободится быстрее и справится с новым запросом более эффективно. Алгоритм Least Response Time выбирает ресурс на основе текущего времени отклика (время, необходимое для выполнения запроса или задачи). Новый запрос направляется на ресурс, который показывает наименьшее среднее время отклика на запросы.