GIT GC потребляет память сервера - PullRequest
1 голос
/ 26 марта 2012

Я использую Git на виртуальном сервере, размещенном на Dreamhost с 2 ГБ памяти. Я запускаю git gc каждое утро в 4 часа утра и постоянно в течение прошлой недели процесс перезагрузки Dreamhost отправляет электронное письмо, в котором говорится, что из-за того, что я использовал более 2 ГБ памяти, они перезагрузили мой сервер, чтобы остановить процесс, который потребляет объем памяти.

Размер хранилища составляет 10 ГБ. Я внимательно посмотрел, прежде чем публиковать это, но есть ли файл журнала, который создает Git, который позволит мне увидеть, какой файл Git «касался», который вызвал принудительный перезапуск сервера?

1 Ответ

1 голос
/ 26 марта 2012

Насколько я знаю, не существует секретного метода регистрации происходящего. Однако в хранилище, содержащем большие объекты, на шаге git repack может потребоваться использование огромных объемов памяти, даже с небольшим (ish) (т.е. по умолчанию) --window и --depth.

Решение (помимо избежания глупых ограничений на ВМ :-)) состоит в том, чтобы использовать git config для установки pack.windowMemory на некоторый подходящий предел. См. Также Перепаковка репозитория Git . (Я сам не сталкивался с такой ситуацией, но, по крайней мере, это кажется очевидным ответом.)

...