2013-03-25 155 views
8

我在Heroku上部署了一個應用程序。我正在使用免費服務。PG ::錯誤:錯誤:Heroku內存不足

很頻繁,我得到以下錯誤。

PG::Error: ERROR: out of memory 

如果我刷新瀏覽器,沒關係。但是,它隨機發生。

爲什麼會發生這種情況?

謝謝。

山姆香港

回答

9

如果您運行的查詢時遇到這些,你的查詢都是複雜或低效。免費層沒有緩存,所以你已經在那裏了。

如果你以其他方式得到這些錯誤,打開一個支持票在https://help.heroku.com

+0

該錯誤持續約2小時,現在它的工作。 – 2013-03-25 20:07:59

2

heroku restart只是幫我雖然

+0

如果你的連接數很高,並且消耗太多內存,'restart'只會在這裏產生影響,在這種情況下,重新啓動應該會清除所有這些連接。 Heroku Postgres數據庫不在dynos上運行。 'restart'不會重新啓動您的數據庫實例。 – catsby 2013-10-15 21:50:06

+0

是@catsby,在我的情況下,我必須運行heroku pg:killall,它會恢復正常。它現在經常發生。任何想法如何避免它? – Emmanuel 2014-02-14 20:49:42

+0

@Emmanuel如果你有定期重新啓動,或PG之:killall,那麼你可能有一個連接泄漏,這意味着你的應用程序越來越紅/死連接,只需打開新的。每個連接都需要內存來維護,並且用完了。 – catsby 2014-02-18 03:13:11

0

如果你不是在一個自由層,它也許是因爲你使用了太多的內存連接到PG。

考慮一個運行在幾個dynos上的應用程序,其中有幾個進程,每個進程都有很多線程,也許你正在填充池。

此外,因爲它出現在Heroku's Help Center也許你正在緩存太多不會被使用的語句。