如何限制 PostgreSQL 上的 work_mem

Pau*_*sey 5 postgresql memory configuration

作为一名分析师,我喜欢有能力work_mem在大型排序或索引构建即将到来时出现。

作为 DBA,随机用户能够在运行时请求任意数量的系统资源的想法有点吓人。我确认一个基本上不需要许可的新创建用户可以请求尽可能多的请求work_mem。估计一次只需要几个贪婪的用户就可以让其他用户挨饿,这很可怕。

有没有办法限制work_mem用户可以请求?

Jam*_*las 1

根据PostgreSQL Wiki,这种事情是不可能的。

PostgreSQL 没有功能来限制特定用户、查询或数据库消耗的资源,或者相应地设置优先级以使一个用户/查询/数据库比其他用户/查询/数据库获得更多的资源。有必要使用操作系统设施来实现有限的优先级。

正如上面的文本所建议的,您可以尝试使用操作系统工具来实现此类限制。例如,ulimit可用于创建特定于进程的资源限制。