我们在 docker 容器中有 postgresql 11.7 数据库。
我们遇到了一个问题"pq: could not resize shared memory segment "/PostgreSQL.XXX" to XXX bytes: No space left on device"
,如下所述。
解决方案有所帮助,我们不再有问题了。但是我们应该为 Postgres 的 docker 容器的 shm_size 设置哪个大小呢?
有什么推荐吗?我们如何计算 shm_size 的“最佳大小”?
有两种情况需要使用共享内存:
服务器启动时分配的共享内存。它由几个部分组成,但最大的部分是shared_buffers
数据缓存。
所以你必须有更多的共享内存。
由并行查询分配的共享内存段,用于并行工作程序之间的通信。
它们的大小取决于传输的数据,并且可以分配其中的几个,因此这是一种更难控制的资源。
在内存受限的系统上,我建议您禁用并行查询。它使查询速度更快,但每个查询使用更多资源,因此总体吞吐量不会提高。如果您想在单个查询上投入大量资源,那么这是很好的选择。
要禁用并行查询,请设置max_parallel_workers
为 0。
归档时间: |
|
查看次数: |
11215 次 |
最近记录: |