Я использую веб-сервер http, подключенный к серверной базе данных. Теперь, если клиент генерирует 100 потоков и пытается связаться с этим веб-сервером через балансировщик нагрузки, я получаю задержку около 32 мс. Но с той же настройкой вместо одного веб-сервера, если у меня есть 2 веб-сервера (хотя они подключены к одной базе данных). Балансировщик нагрузки балансирует нагрузку между этими 2 веб-серверами, используя алгоритм циклического перебора. Теперь я запускаю того же клиента, который генерирует те же 100 потоков, но в этом случае задержка составляет почти 55 мс. Я думал, что больше веб-серверов означает лучшую производительность, но это как раз наоборот. Может кто-нибудь помочь мне разобраться в этой ситуации? Спасибо !
EDIT: информация о балансировщике нагрузки - я использую балансировщик нагрузки haproxy.
Это файл конфигурации:
global
maxconn 4096
pidfile /var/run/haproxy.pid
daemon
defaults
mode http
retries 3
option redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen GALAXY 10.76.2.15:80
mode http
cookie GALAXY insert
balance roundrobin
option httpclose
option forwardfor
option nolinger
stats enable
stats auth myuser:mypass
server EARTH 10.76.2.107:80 cookie GALAXY_SERVER_01 check
Даже в обычном случае я подключаюсь к единственному веб-серверу через балансировщик нагрузки. Я не знаю, почему я получаю дополнительную задержку при добавлении другого веб-сервера. -Сету
Балансировщик нагрузки увеличит вашу пропускную способность, но это не изменится.
«Лучшая производительность» вступает в игру, когда вы начинаете достигать параллелизма, который приведет к перегрузке одного сервера. С помощью балансировщика нагрузки вы можете распределить нагрузку на всю ферму серверов. Вот где «лучшая производительность», которую обеспечивает балансировщик нагрузки, вступает в силу.