2012-03-26 5 views
1

Ich benutze Git auf einem virtuellen Server, der von Dreamhost mit 2GB Speicher gehostet wird. Ich renne git gc jeden Morgen um 4 Uhr und konsequent für die vergangene Woche, Dreamhost Prozess Neustart senden Sie eine E-Mail, dass aufgrund der Tatsache, dass ich mehr als 2GB Speicher verbraucht haben, sie meinen Server neu gestartet, um den Prozess zu stoppen, der den Speicher verbraucht.GIT GC konsumiert Serverspeicher

Die Repository-Größe beträgt 10 GB. Ich habe ausgiebig nachgeschaut, bevor ich das gepostet habe, aber gibt es eine Protokolldatei, die Git erstellt, die mir erlauben wird, zu sehen, welche Datei Git 'berührt' hat, die den Server gezwungen hat, neu zu starten?

Antwort

1

Soweit ich weiß, gibt es keine geheime Methode zu protokollieren, was passiert ist. Bei einem Repository, das große Objekte enthält, könnte der Schritt git repack jedoch große Mengen an Speicher verwenden, selbst mit einem kleinen (ish) (d. H. Standard) --window und --depth.

Die Lösung (neben der Vermeidung alberner Einschränkungen für VM :-)) ist git config zu verwenden, um pack.windowMemory auf ein geeignetes Limit zu setzen. Siehe auch Repack of Git repository fails. (Ich bin selbst nicht in diese Situation geraten, aber das scheint zumindest die offensichtliche Antwort zu sein.)

+0

tyvm torek, ich schätze deine Zeit –