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

добавление сервера приложений не улучшает производительность с помощью haproxy

Я запускаю балансировщик нагрузки haproxy перед двумя серверами приложений, которые обслуживают изображения. Проблема в том, что использование одного или двух серверов не влияет на производительность (см. Добавленные изображения). Я использую Digital Ocean в качестве провайдера Vps. Vps работают под управлением nginx, а

Нагрузка с двух серверов:

нагрузка с 1 сервера:

Конфигурация Haproxy выглядит так:

global
log 127.0.0.1 local0 notice
maxconn 10000
user haproxy
group haproxy
chroot /var/lib/haproxy
daemon

defaults
    log global
    mode    http
    option  httplog
    option  dontlognull
        contimeout 5000
        clitimeout 50000
        srvtimeout 50000
    errorfile 400 /etc/haproxy/errors/400.http
    errorfile 403 /etc/haproxy/errors/403.http
    errorfile 408 /etc/haproxy/errors/408.http
    errorfile 500 /etc/haproxy/errors/500.http
    errorfile 502 /etc/haproxy/errors/502.http
    errorfile 503 /etc/haproxy/errors/503.http
    errorfile 504 /etc/haproxy/errors/504.http

frontend www
    bind 12.34.56.789:80
    option http-server-close
    default_backend web-backend


backend web-backend
    balance roundrobin   
    server web-1 12.34.56.789:80 check
    server web-2 12.34.56.789:80 check

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

Это закон времени отклика.

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

Максимальное время ответа составляет около 70 секунд, а время ожидания 17000 запросов истекло (это не очень хорошо). Это проблема приложения.

Также убедитесь, что ваша база данных может обрабатывать такое количество подключений.

More application servers = more database connections.