У меня есть сценарий развертывания, в котором я хочу, чтобы все мои веб-серверы одновременно выполняли git pull
с того же места. Когда только два сервера делают pull
одновременно нет никаких проблем. Когда у меня есть три или четыре сервера, часто случается, что один или несколько серверов перестают работать и не завершают поиск. Я использую git поверх ssh.
Могу ли я использовать какое-либо серверное программное обеспечение, которое будет управлять входящими запросами и обрабатывать каждый отдельно или что-то в этом роде?
Спасибо
Скорее всего, вы просто достигли некоторого лимита на сервере, на котором размещено главное репозиторий git. Вы не предоставляете никаких данных об этом, чтобы помочь с диагностикой, но если у вас медленный / дешевый сервер, я бы начал рассматривать возможные конфликты ввода-вывода.
Действительно ли все веб-серверы должны работать одновременно? Если нет, просто добавьте немного "пуха" к сценарию, задавая каждый сон на случайное количество секунд (скажем, от 0 до 15) перед выполнением вытягивания.
Если это не вариант, попробуйте вручную выполнить git pull со своей рабочей станции (в репозиторий, который находится в том же состоянии, что и веб-серверы), прежде чем запускать сценарий развертывания. Это загрузит дисковый кеш сервера, и, надеюсь, он сможет обслуживать большую часть операций извлечения из кеша, вместо того, чтобы воздействовать на сам диск.