在CentOS上編譯Go程序時若遇內存不足,可按以下方法解決:
增加交換空間(Swap)
sudo fallocate -l 1G /swapfile
(大小按需調整)。sudo chmod 600 /swapfile
→ sudo mkswap /swapfile
→ sudo swapon /swapfile
。/swapfile swap swap defaults 0 0
添加到/etc/fstab
。優化編譯參數
-ldflags "-s -w"
去除符號表和調試信息,減小二進制體積。make -j2
(根據CPU核心數調整,避免過多占用內存)。代碼與依賴優化
pprof
工具分析(如import _ "net/http/pprof"
)。sync.Pool
)。系統級調整
vm.swappiness
控制內存回收速度(建議設置為10-30)。top
、free -m
實時查看內存占用,定位異常進程。硬件升級
參考來源: