PG::Error: 错误:在Heroku上内存不足

10

我在Heroku上部署了一个应用程序。 我使用的是免费服务。

经常会收到以下错误信息。

PG::Error: ERROR:  out of memory

如果我刷新浏览器,就没问题了。但是之后,它又会随机发生。

为什么会这样?

谢谢。

Sam Kong

3个回答

10
如果在运行查询时遇到这些问题,说明你的查询很复杂或效率低下。免费版本没有缓存,所以你已经没有机会了。
如果您在其他情况下遇到这些错误,请在https://help.heroku.com上开启支持工单。

5

heroku restart 简单地帮助了我。


如果您的连接计数很高并且消耗了太多内存,那么“restart”只会在这里产生影响,在这种情况下,重新启动应该清除所有这些连接。Heroku Postgres数据库不在dynos上运行。“restart”不会重启您的数据库实例。 - catsby
是的@catsby,在我的情况下,我必须运行 heroku pg:killall,然后它就恢复正常了。这些天经常发生。有什么办法可以避免这种情况吗? - Emmanuel
1
@Emmanuel 如果你经常需要重新启动或者使用pg:killall命令,那么你可能存在连接泄漏的问题,这意味着你的应用程序会获取挂起/死亡的连接并且只是简单地打开新的连接。每个连接都需要内存来维护,当连接数过多时就会耗尽内存。 - catsby

0

如果您不在免费层中,可能是因为连接到PG时使用了太多内存。

考虑一个在多个dynos上运行的应用程序,具有多个进程,每个进程都有大量线程,可能会填满池。

此外,正如Heroku帮助中心中所述,您可能缓存了太多不会使用的语句。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接