Назад | Перейти на главную страницу

Базовое понимание балансировщика нагрузки

Я использую веб-сервер 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

Даже в обычном случае я подключаюсь к единственному веб-серверу через балансировщик нагрузки. Я не знаю, почему я получаю дополнительную задержку при добавлении другого веб-сервера. -Сету

Балансировщик нагрузки увеличит вашу пропускную способность, но это не изменится.

«Лучшая производительность» вступает в игру, когда вы начинаете достигать параллелизма, который приведет к перегрузке одного сервера. С помощью балансировщика нагрузки вы можете распределить нагрузку на всю ферму серверов. Вот где «лучшая производительность», которую обеспечивает балансировщик нагрузки, вступает в силу.