我在 Dreamhost 托管的具有 2GB 内存的虚拟服务器上使用 Git。我git gc
每天早上 4 点运行,并且在过去一周中一直运行,dreamhost 进程重新启动发送一封电子邮件,说明由于我消耗了超过 2GB 的内存,他们已经重新启动了我的服务器以停止消耗内存的进程。
存储库大小为 10GB。在发布此之前我已经进行了广泛的查看,但是是否有 Git 创建的日志文件可以让我看到 Git 正在“触摸”哪个文件导致服务器强制重启?
据我所知,没有什么秘密方法可以记录发生的事情。但是,对于包含大对象的存储库,该git repack
步骤可能需要使用大量内存,即使是小的(ish)(即默认)--window
和--depth
.
解决方案(除了避免对 VM 的愚蠢限制 :-) )是用来git config
设置pack.windowMemory
一些合适的限制。请参阅重新打包 Git 存储库也失败。(我自己并没有遇到过这种情况,但这似乎是显而易见的答案,至少。)