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

HTTP-серверы с балансировкой нагрузки с помощью HAProxy; ОЧЕНЬ медленный ответ на некоторые запросы

У меня странная проблема при использовании HAProxy для балансировки нагрузки некоторых веб-серверов. Реакция через балансировку нагрузки иногда становится очень медленной ...

Мой сценарий:

global
  daemon
  quiet
  maxconn          4096
  nbproc           2

listen XMLRPC 0.0.0.0:8888
  mode http
  balance roundrobin
  option httpclose
  option forwardfor
  server Srv1(10.199.100.111:8082) 10.199.100.111:8082 check inter 10
  server Srv2(10.199.100.112:8084) 10.199.100.112:8084 check inter 10

listen Custom1 0.0.0.0:60080
  mode http
  balance roundrobin
  option httpclose
  option forwardfor
  server Srv1(10.199.100.111:60081) 10.199.100.111:60081 check inter 10
  server Srv2(10.199.100.112:60083) 10.199.100.112:60083 check inter 10

listen Statistics 0.0.0.0:7000
  balance
  timeout connect 60000
  timeout client  60000
  timeout server  60000
  option httpclose
  mode http
  stats enable
  stats uri /
  stats hide-version
  stats auth admin:admin

Когда я извлекаю балансировщики нагрузки и подключаюсь к веб-серверам напрямую, этой проблемы не возникает, но тогда у меня нет балансировки нагрузки / аварийного переключения, так что это не то, что я хочу.

У кого-нибудь есть указание на то, что здесь не так? Почему одни запросы выполняются молниеносно, а другие - очень медленно (10-15 секунд)?

Заранее спасибо!

Я не вижу ничего явно плохого. У вас нет тайм-аута, что плохо, но это не связано. Вы должны включить ведение журнала, он скажет вам, где запрос потратил время. Для этого используйте «option httplog» и «log 127.0.0.1 local0», затем настройте ваш syslogd на получение журналов через сокет UDP (например: syslogd -r).

Хммм да что-то не так в вашем конфиге. Вы проверяете серверы 100 раз в секунду, что может быть для них слишком много. Заменить "inter 10" на "inter 10s".

Вилли