没有合适的资源?快使用搜索试试~ 我知道了~
首页Git使用小坑 Out of memory错误的解决方法
资源详情
资源评论
资源推荐

Git使用小坑使用小坑 Out of memory错误的解决方法错误的解决方法
主要介绍了Git使用小坑 Out of memory错误的解决方法,需要的朋友可以参考下
最近公司将内部使用的代码由svn迁到了git上,所以也必须学者使用Git命令。
虽说git的模式和svn区别很大,但想必也不是什么难事。但没曾想在第一步git clone的时候就踩到了一个大坑……废话不多
提,先看错误代码:
复制代码 代码如下:
Cloning into XXXX...
remote: Couting objects: 125627, done.
remote: Compressing objects: 100% (47061/47061), done.
fatal: Out of memory, malloc failed (tried to allocate 1941159936 bytes)
就这几行错误码,生生的把我给绊住了一天……
0x00 调内存调内存
看到“Out of memory, malloc failed”,第一反应是内存不足。毕竟虚拟机内存太小,Debian的虚拟机只给了512M的内存,再
加上自己没事鼓捣着玩,自己装了一堆乱七八糟的程序,free的只有几十兆了。
于是果断把乱七八糟的进程结束掉,服务停掉,没用的东西全关了。最后又把虚拟机的内存调到了1G.
结果——fatal依然……
0x01 调配置调配置
后来又看了下这句——“allocate 1941159936 bytes”——这是1.8G啊……这能有多大内存给他啊……调内存显然不是办法。于
是上网搜了一下这个报错,发现都是让调配置的:
复制代码 代码如下:
git config --global pack.threads 1 git
config --global pack.deltaCacheSize = 128m
git config --global pack.windowMemory 50m
顺便吐槽一句——国内博客全都在抄这个配置……还把Cache抄成了Chase……复制都不会么……
这样一来,应该是可以减小资源的占用,但遗憾的是貌似git根本没拾这茬,依然是义无反顾的申请了1.8个G的空间……
当然,结果——再一次的fatal依然……
另外,我还找了另一个哥们做了个试验,他的虚拟机里就可以正常clone(1G内存,free不到100M),而我手上的两个虚拟机
则都无法正常clone(1G内存,free超过800M 和 2G内存,free将近1.3G)。看起来和内存没什么关系了
0x02 调调swap
最后终于看到了这篇:http://stackoverflow.com/questions/14038074/git-pull-fatal-out-of-memory-malloc-failed
让我眼前一亮的是这个帖子里贴出的错误代码和我的几乎一模一样,而且在一开始就写明了上面的所谓配置方案都已经试过
了,但依然无效——和我遇到的情况完全一样。不过他最后的结果是:
In the end i had to kill old & create new repo.
貌似是没找到什么好的解决方案……
但当我翻到最下面的时候眼前一亮——“To get around this I temporarily created a large swap drive...”。“a large swap”……醍
醐灌顶啊……我立马问了下能正常clone的那个哥们的虚拟机给了多少swap空间,得到的答复是2G,而我手里的——1G和
0……和0……和……0……0……0……
原来我需要的是一个大的swap!
虽然我的swap已经是划分好了的,但还是可以添加的,具体方法这篇帖子中也给出了链接:
http://www.thegeekstuff.com/2010/08/how-to-add-swap-space/

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0