我正在使用 MongoDB 作為數(shù)據(jù)庫(kù)和 mgo 作為驅(qū)動(dòng)程序在 Go 中編寫 REST API。對(duì)于路由器,我使用的是客戶:pi。在程序啟動(dòng)時(shí),我創(chuàng)建了一個(gè)主 mgo.Session,然后,對(duì)于每個(gè)處理的請(qǐng)求,我復(fù)制主會(huì)話并在完成后關(guān)閉它。但是,當(dāng)同時(shí)處理多個(gè)請(qǐng)求時(shí),我觀察到 MongoDB 連接仍然打開,即使我關(guān)閉了復(fù)制的每個(gè) mgo.Session。以下是lsof命令的輸出示例:milano-ru 18790 neel_v 118u IPv4 34115804 0t0 TCP localhost:44238->localhost:27017 (ESTABLISHED)milano-ru 18790 neel_v 119u IPv4 34115812 0t0 TCP localhost:44241->localhost:27017 (ESTABLISHED)milano-ru 18790 neel_v 120u IPv4 34115813 0t0 TCP localhost:44242->localhost:27017 (ESTABLISHED)milano-ru 18790 neel_v 121u IPv4 34115814 0t0 TCP localhost:44243->localhost:27017 (ESTABLISHED)milano-ru 18790 neel_v 122u IPv4 34115815 0t0 TCP localhost:44244->localhost:27017 (ESTABLISHED)因此,在我的應(yīng)用程序運(yùn)行幾個(gè)小時(shí)后,它停止工作,因?yàn)樗鼰o法打開另一個(gè) MongoDB 連接,因?yàn)檫_(dá)到了限制 (1024)。我讀過關(guān)于增加MongoDB 的ulimit,但這真的是一個(gè)解決方案嗎?
1 回答

守候你守候我
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊
我有點(diǎn)沮喪,同時(shí)也松了一口氣,但我在發(fā)布問題后立即找到了答案......
檢查 mgo 會(huì)話后,我可以看到 Dial 設(shè)置,默認(rèn)情況下 maxPoolSize 為 4096... 在嘗試減少池大小后,它解決了我的問題。
- 1 回答
- 0 關(guān)注
- 300 瀏覽
添加回答
舉報(bào)
0/150
提交
取消