git: Удаленный конец неожиданно завис - слишком много одновременных пользователей? - PullRequest
2 голосов
/ 30 декабря 2010

У нас есть собственный сервер git (Gitolite) для учетной записи VPS (ЦП: 2,68 ГГц, ОЗУ: 1824 МБ).Этот тот же VPS также используется для публикации наших веб-приложений с низким уровнем развития для демонстрационных версий клиентов.(Очень мало трафика).Таким образом, основное использование сервера - это только Git-сервер.

К этому git-серверу работает команда из 30-40 человек для различных проектов.Наша проблема в том, что в течение дня, когда 6-7 человек пытаются получить доступ к серверу (иногда это же репо), мы получаем частое сообщение об ошибке:

ssh: подключение к хосту xxx.xxx.xx.xx порт 22:Неверный номер файла фатальный: удаленный конец неожиданно зависает

После попытки в течение 10-15 минут обычно это удается.

В ранние утренние и поздние ночи, когда в нем всего 1-2 человека, команды git работают со 100% успехом.Также я хотел бы отметить, что если я получаю доступ к другому файлу, размещенному на сервере через HTTP, он работает нормально.

Я нашел пару вопросов по StackOverflow и на других сайтах по этому поводу.Но большинство людей считают, что указывают на настройку SSH-ключа или конфликты между Msysgit и Cygns SSH.

Однако я не думаю, что это проблема в нашем случае, поскольку мы получаем такое поведение в Windows (используя msysgitтолько), а также Mac Machines.Кроме того, если это была проблема конфигурации SSH, то это не должно работать вообще.Но в нашем случае это работает через 10-15 минут.

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

Пожалуйста, помогите мне решить эту проблему или укажите правильное направление.

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

Притам.

1 Ответ

1 голос
/ 17 февраля 2012

Этот вопрос относится к этому . Я не уверен, было ли это когда-либо перенесено в ServerFault, или если оно было решено - здесь нет комментариев на этот счет - поэтому я добавлю этот ответ.

Ваша проблема ограничена доступом к хранилищу git через SSH. Это связано с тем, что по умолчанию SSHD поддерживает не более 10 одновременных подключений.

Со страницы man sshd_config:

MaxSessions
     Specifies the maximum number of open sessions permitted per net‐
     work connection.  The default is 10.

 MaxStartups
     Specifies the maximum number of concurrent unauthenticated con‐
     nections to the SSH daemon.  Additional connections will be
     dropped until authentication succeeds or the LoginGraceTime
     expires for a connection.  The default is 10.

     Alternatively, random early drop can be enabled by specifying the
     three colon separated values “start:rate:full” (e.g. "10:30:60").
     sshd(8) will refuse connection attempts with a probability of
     “rate/100” (30%) if there are currently “start” (10) unauthenti‐
     cated connections.  The probability increases linearly and all
     connection attempts are refused if the number of unauthenticated
     connections reaches “full” (60).

Если вы не изменили их, ваш сервер не будет обрабатывать более 10 одновременных подключений. Доступ к вашим репозиториям через SSH не займет много времени; таким образом, непрерывная повторная попытка в конечном итоге соединится, когда другие народы git push es и git pull s и т. д. будут завершены.

...