Развертывание Puma без простоев с кластерным режимом и preload_app - что происходит с новыми и текущими соединениями? - PullRequest
0 голосов
/ 22 января 2019

Прямо сейчас у меня успешно запущена установка puma с нулевым временем простоя при поэтапном перезапуске (обслуживается за nginx).

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

Но: сейчас мы устанавливаем количество процессов на количество процессоров - 1, поэтому для большого сервера с 32 процессорами существует 31 процесс puma, который перезапускается один за другим при поэтапном перезапуске.Это занимает очень много времени (около 15 минут, поскольку каждый процесс загружается примерно за 30 секунд (да, много драгоценных камней, большая система)).

Я видел, что кластерный режим также может бытьиспользуется для быстрого развертывания с настройкой preload_app! - но я не могу понять, что происходит во время развертывания:

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

Было бы здорово услышать объяснение, спасибо!

1 Ответ

0 голосов
/ 23 января 2019

Хорошо, я сам проверил: новые соединения застряли, и вам нужно подождать, пока ваши рабочие закончат загрузку. Существующие соединения не закрыты. Поэтому для развертываний с нулевым временем простоя вам действительно нужно выполнять поэтапный перезапуск (с тем недостатком, что это занимает довольно много времени, если у вас много рабочих).

...