Git pack-objects died of signal Error

Beim Arbeiten mit einem großen Git Repository (insbesondere beim ersten Clonen) auf einem Server mit wenig Arbeitsspeicher bekommt man schnell ein Speicherproblem, da der RAM-Verbrauch des git-Prozesses permanent ansteigt und schließlich serverseitig gekillt wird:

$ git push
..
error: pack-objects died of signal 9
..

Die folgenden drei Kommandos konfigurieren Git so, dass der Speicherverbrauch limitiert wird und das Problem behoben sein sollte:

$ git config core.packedGitWindowSize 16m
$ git config core.packedGitLimit 64m
$ git config pack.windowMemory 64m
$ git config pack.packSizeLimit 64m
$ git config pack.thread 1
$ git config pack.deltaCacheSize 1m

Um die Konfiguration Systemweit zu definieren, bitte den Parameter --global hinzufügen. Beispiel:

$ git config --global pack.windowMemory "32m"

02.06.2014. Dies funktioniert natürlich nur mit den richtigen Benutzerrechten. Danke an den Git-Experten Andreas Wolf für den ersten Kommentar in meinem kleinen Blog :-)

1 Kommentar

  1. Schöne Übersicht über die nötigen Parameter für’s Packen, danke dafür! Ich habe das neulich bei der Vorbereitung für eine Schulung schon mal gesehen, aber bisher in mehreren Jahren Git-Nutzung noch nie gebraucht.

    Ein Hinweis noch: Wenn –global benutzt wird, sollte man prüfen, ob man das unter dem richtigen Benutzeraccount ausführt (–global ist die globale *Benutzer*konfiguration, –system wäre systemweit, das geht normal aber nur mit root-Rechten).
    Da der Git-Daemon bzw. auch Gitorious/Gitolite/Gitlab üblicherweise mit ihrem eigenen Benutzer laufen, der keinen direkten SSH-Zugriff hat, kann man das nicht mit seinem eigenen Benutzerlogin machen, sonst greift es für Zugriffe über den Daemon nicht.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.


+ 85 = 87