1. 程式人生 > >git fatal: Out of memory, malloc failed

git fatal: Out of memory, malloc failed

想必大部分人看到“Outof memory, mallocfailed”,第一反應肯定是記憶體不足,一般的電腦也就2GRAM,如果是虛擬機器也就幾百M而已,而進入需要pullpushgit目錄:gitcount-objects -v可以看到如下內容:

count: 7

size: 60

in-pack:2983280

packs: 1

size-pack:751489

prune-packable:0

garbage:0

in-pack需要近3G的記憶體啊,這哪有記憶體給其使用。

目前網上給的方法是如下:

gitconfig --global pack.threads 1

gitconfig --global pack.deltaCacheSize = 128m
git config --globalpack.windowMemory 1024m

這樣一來,應該是可以減小資源的佔用,但對於大的git還是無濟於事。

其實問題原因是需要一個Swap空間,原來我的系統安裝時沒有分配交換空間。

1新增交換檔案
mkdir-p /opt/temp
dd if=/dev/zeroof=/opt/temp/swap bs=1024 count=4096000
(目錄路徑和大小自己看著辦就好了)


2.
建立交換空間
mkswap/opt/temp/swap


3.
啟動新增加的4G交換空間
swapon/opt/temp/swap


4.
修改/etc/fstab,使新加的4G交換空間在系統重新啟動後自動生效
echo"/opt/temp/swap swap swap defaults 0 0" >>/etc/fstab


5.
看看swap大小free-m