Heroku Postgres:最大内存设置为 work_mem 时出现内存不足错误

Heroku Postgres: Out of memory error with work_mem settings on max

我在 Heroku Postgres 上的计划是 8GB 内存。

我尝试 运行 使用“order by”进行查询,结果出现内存不足的错误!!

我尝试将 work_mem 设置为 2GB,然后再设置为 4GB,但出现相同的错误。

ALTER DATABASE xxxx  SET work_mem = '4096MB';

直到最近,所有的问题都很好用,突然间一切都卡住了。

将计划升级到 15RAM 并将 work_mem 设置为 8GB 后,我遇到了同样的错误。 Heroku 支持建议将“temp_tablespaces”设置为“pg_default”,但我再次遇到相同的错误

ALTER DATABASE xxxx SET work_mem = '8192MB';
ALTER DATABASE xxxx SET temp_tablespaces = 'pg_default';

我不明白服务器发生了什么,Heroku 支持也没有真正帮助。 可能是什么问题?

work_mem可以单次查询多次分配,可以有多次并发查询。此外,必须考虑分配给 shared_buffers 的内存。

work_mem 使用更小的设置。

你走错方向了。你给了它你的使用更多内存的权限,但是当它试图使用它时,系统把它撞在头上,因为内存不在那里使用。您需要告诉您的会话使用更少的内存,而不是更多。然后它将切换到磁盘排序,而不是尝试在 RAM 中完成所有操作。