首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git克隆失败,内存不足-“致命:内存不足,malloc失败(试图分配905574791字节)/致命:索引包失败”

Git克隆失败,内存不足-“致命:内存不足,malloc失败(试图分配905574791字节)/致命:索引包失败”
EN

Stack Overflow用户
提问于 2011-09-30 08:44:03
回答 4查看 27.8K关注 0票数 17

我正在尝试将一个大的(1.4GB) Git存储库克隆到一个32位的Debian上,这个虚拟机有384 of的RAM。我使用Git 1.7.2.5,并使用SSH协议克隆('git克隆用户@host.com:/my/repo‘)

克隆失败的消息如下:

代码语言:javascript
复制
remote: Counting objects: 18797, done.
remote: warning: subobtimal pack - out of memory
remote: Compressing objects: 100% (10363/10363), done.
fatal: out of memory, malloc failed (tried to allocate 905574791 bytes)
fatal: index-pack failed

我尝试减少Git用于在主机存储库端重新打包的内存量,并重新打包:

代码语言:javascript
复制
git config pack.windowMemory 10m
git config pack.packSizeLimit 20m
git repack -a -d

我的问题如下:

  1. 这是一个客户端(克隆端)问题,还是应该在我正在克隆的回购中解决?
  2. 在这两种情况下,我能做些什么让克隆人成功吗?许多潜在的在线解决方案都涉及以下一些/全部内容,但在这种情况下没有一个是可以接受的:
代码语言:javascript
复制
- changing the contents of the repository substantively (i.e. deleting large files)
- giving the VM which is doing the clone more RAM
- giving the VM which is doing the clone a 64-bit virtual CPU
- transferring out-of-band (e.g. using Rsync or SFTP to transfer the .git directory)

提前谢谢。

EN

回答 4

Stack Overflow用户

发布于 2011-09-30 08:54:59

git clone不会查看您的pack.packSizeLimit设置,它无论如何都会在一个包中传输所有内容--除非它自我上次查看以来就已经改变了。

使用SCP或Rsync可能确实是解决问题的一种方法。删除“无用”的大型文件,然后重新打包您试图克隆的存储库也会有所帮助。

向VM提供更多的RAM也可能有帮助--我不认为您需要64位地址空间来分配900 to .您还可以给它足够的交换空间来处理900 of包,而不是增加RAM。

票数 3
EN

Stack Overflow用户

发布于 2013-08-29 16:22:18

我在使用MSysGit 32位的Windows上也遇到了类似的问题。来自西格温的git 64位完成了这项工作。也许您应该使用64位Debian (而不是32位)。

我的原始答案可以在Windows上的Git,“内存不足- malloc失败”问题上使用。

票数 0
EN

Stack Overflow用户

发布于 2017-04-25 08:37:14

今天我也遇到了同样的问题。Git服务器内存不足,但gitlab报告说内存仍然可用。我们用htop检查内存(报告没有可用),重新启动gitlab,一切都恢复正常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7607970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档