2 回答

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
這里有兩條線索表明您消耗了太多內(nèi)存,并且操作系統(tǒng)正在強(qiáng)行殺死您的“流氓”進(jìn)程。他們是:
被殺
無(wú)法分配內(nèi)存
您可以通過(guò)在構(gòu)建失敗結(jié)束時(shí)獲取 SSH 會(huì)話并使用dmesg
.?如果它給你一個(gè)“犧牲孩子”的消息,那么你就達(dá)到了內(nèi)存限制,以至于操作系統(tǒng)被迫從內(nèi)存中刪除一個(gè)進(jìn)程。
您有多種選擇。我按照建議您喜歡它們的順序?qū)⑺鼈兎旁谶@里:
通過(guò)更改 Go 程序來(lái)減少內(nèi)存消耗
請(qǐng) CircleCI 為您設(shè)置一個(gè)更大的 Docker 容器(這將是一個(gè)收費(fèi)選項(xiàng))。默認(rèn)是4G,相信8G和16G都可以
交換到機(jī)器執(zhí)行器(目前免費(fèi),可能會(huì)發(fā)生變化)。這為您提供了 8G 的 RAM,但是您失去了 Docker 方法的一些靈活性(例如,您必須使用幾個(gè)預(yù)設(shè)基礎(chǔ)映像之一)。

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊
在這種情況下對(duì)我有用的是go test -p 1
告訴 Go 一次只運(yùn)行一個(gè)編譯。
如果沒有它,Go 將運(yùn)行你擁有的 CPU 數(shù)量,在 CircleCI 上默認(rèn)是兩個(gè)。
- 2 回答
- 0 關(guān)注
- 198 瀏覽
添加回答
舉報(bào)