Балансировщик нагрузки сброса соединения при загрузке файлов размером более 10 ГБ - PullRequest
0 голосов
/ 17 мая 2018

В настоящее время я работаю над требованием, когда нам требуется загрузить файл размером 10 ГБ или более. В соответствии с требованием, в первую очередь, файл необходимо загрузить на сервер. Затем его необходимо перенести на сервер FTP.После того, как файл полностью передан на FTP-сервер. Необходимо запустить почту.

Я выполнил все необходимые настройки конфигурации php и сервера для загрузки файлов размером более 10 ГБ, и через IP-адрес хоста я смог успешнозагрузить файл. Однако, когда я загружаю тот же файл на тот же хост через балансировку нагрузки. Соединение используется для тайм-аута. Как только файл передается в расположение FTP.

После небольшого исследования я обнаружил, что загрузкабалансировщик рассчитывал время ожидания, так как когда php-скрипт выполняет сервер, и требуется больше времени, когда сервер простаивает, и нет соединения TCP-соединения между балансировщиком нагрузки и сервером. В настоящее время идеальное время ожидания для балансировщика нагрузки было установлено на 5 минут.

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

В PHP все равно есть проблема, через которую мы сохраняем соединение TCP междусервер и loadbalancer может быть kept ALive?

  • PHP версии 5.6
  • APACHE 2.2
  • LOAD BALANCER F5

Любое предложение будет оценено как яцарапая мою голову в течение 4 дней. И твое предложение может спасти меня от облысения ...

1 Ответ

0 голосов
/ 17 мая 2018

Это распространенная проблема из-за двухканального метода FTP.Если время простоя составляет 5 минут, поддерживаемый рекомендуемый метод все еще увеличивает время простоя.RFC5382 заявляет ".. большой тайм-аут простоя, мотивированный рекомендациями в [RFC1122], может уменьшить шансы на отказ от сеанса в реальном времени" .

Опция 1 - эточтобы увеличить время простоя на одну минуту или больше на то, что для передачи в 10 ГБ требуется ТОЛЬКО для этого виртуального сервера (при условии, что у вас есть 1 виртуальный сервер, прослушивающий порт 21 для этого приложения).

Опция 2 Установите поддержку активности для BIG-IP на сервере, который короче, чем время ожидания профиля TCP.Это RFC?Будет ли это работать?Наверное.Они обычно используются для долгосрочных соединений (базы данных / мэйнфреймы), где неиспользуемые сеансы не должны прерываться часами.Это не совсем ваш сценарий, но он будет работать.

Я рекомендую просто увеличить время простоя до тех минут, сколько потребуется, чтобы загрузить 10 ГБ.Если ваш виртуальный сервер обрабатывает трафик за пределами порта 21, вы можете изменить профили TCP через iRules, чтобы у вас был переменный тайм-аут простоя в зависимости от порта.Ниже приведен хороший пример вашего вопроса о сообществе DevCentral в F5.

Тайм-аут IDLE и интервал Keepalive @ DevCentral

...