git fatal: Out of memory, malloc failed
阿新 • • 發佈:2019-01-26
想必大部分人看到“Outof memory, mallocfailed”,第一反應肯定是記憶體不足,一般的電腦也就2G的RAM,如果是虛擬機器也就幾百M而已,而進入需要pull或push的git目錄:gitcount-objects -v可以看到如下內容:
count: 7
size: 60
in-pack:2983280
packs: 1
size-pack:751489
prune-packable:0
garbage:0
in-pack需要近3個G的記憶體啊,這哪有記憶體給其使用。
目前網上給的方法是如下:
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