2010-12-30 10 views
2

Wir haben einen selbst gehosteten Git-Server (Gitolite) auf einem VPS-Konto (CPU: 2,68 GHz RAM: 1824 MB). Das gleiche VPS wird auch verwendet, um unsere unterentwickelten Web-Apps für Client-Demos zu veröffentlichen. (Sehr wenig Verkehr). Die Hauptverwendung des Servers ist also nur ein Git Server.Git: Das Remote-Ende hängt unerwartet auf - zu viele gleichzeitige Benutzer?

Dieser Gitserver wird von einem Team von 30-40 Personen für verschiedene Projekte aufgerufen. Unser Problem ist, dass während des Tages, wenn 6-7 Personen versuchen, auf den Server zuzugreifen (manchmal das gleiche Repo) erhalten wir häufige Fehlermeldung:

ssh: Verbindung zum Host xxx.xxx.xx.xx Port 22: Bad Datei Nummer fatal: Das Remote-Ende aufgelegt unerwartet

Nach dem Versuch für 10-15 Minuten ist es in der Regel erfolgreich.

Während der frühen Morgen und späten Nächte, wenn es nur 1-2 Personen gibt, arbeiten Git Befehle mit 100% Erfolgsquote. Ich möchte auch darauf hinweisen, dass es gut funktioniert, wenn ich auf die andere Datei zugreife, die auf dem Server über HTTP gehostet wird.

Ich habe ein paar Fragen über StackOverflow und auf anderen Seiten diesbezüglich gefunden. Aber die meisten Leute sehen, auf SSH Schlüsselaufbau oder Konflikte zwischen Msysgit und Cygns SSH zu zeigen.

Allerdings glaube ich nicht, dass dies das Problem in unserem Fall ist, wie wir dieses Verhalten unter Windows (nur mit msysgit) sowie Mac-Maschinen bekommen. Auch wenn es sich um ein SSH-Konfigurationsproblem handelte, sollte es überhaupt nicht funktionieren. Aber in unserem Fall funktioniert es nach 10-15 Minuten.

Ich denke in unserem Fall könnte es zu viele gleichzeitige Verbindungen zu demselben Server (oder gleichen Repo) oder so ähnlich sein. Gibt es eine Einstellung oder eine Conf-Datei, die geändert werden muss, um dieses Problem zu lösen?

Bitte helfen Sie mir, dieses Problem zu lösen oder weisen Sie mich in die richtige Richtung.

Vielen Dank im Voraus.

Pritam.

+6

Dies ist definitiv ein SSH-Server-Problem mit Ihrem VPS. git ist es egal, wie viele Leute verbunden sind oder welchen Transport du verwendest; Sobald Sie einen ssh Link haben, wird es sein Ding machen. Dies ist wahrscheinlich eine Frage für Serverfault. –

+0

Hallo Charles, danke für den Vorschlag. Ich werde versuchen, Serverfault. –

Antwort

1

Diese Frage bezieht sich auf this one. Ich bin mir nicht sicher, ob das jemals zu ServerFault verschoben wurde, oder ob es gelöst wurde - es gibt keine Kommentare zu diesem Effekt - also werde ich diese Antwort hinzufügen.

Ihr Problem beschränkt sich auf den Zugriff auf das Git-Repository über SSH. Dies liegt daran, dass SSHD standardmäßig nicht mehr als 10 gleichzeitige Verbindungen bietet.

Von Mann sshd_config Seite:

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). 

Wenn Sie diese nicht geändert haben, wird Ihr Server nicht mehr als 10 gleichzeitige Verbindungen verarbeiten. Der Zugriff auf Ihre Repositories per SSH dauert nicht lange; so, wird kontinuierlich versuchen, schließlich als andere Völker verbinden git push es und git pull s usw. abgeschlossen.

+0

Ja, es wurde gelöst, indem diese Werte nur in sshd_config festgelegt wurden. –