Postgresql 10 - 并行配置

Hud*_*nPH 6 postgresql postgresql-10

有4种配置可以启用并行并进行优化,但PostgreSQL 的文档没有说明有关值或计算的任何信息.我的问题是:

1 -如何计算的值max_parallel_workers, max_parallel_workers_per_gathermax_worker_processes

2- work_mem可以根据连接和内存(RAM)计算,但是work_mem如果启用并行,需要改变一些东西吗?

我的假设是:如果机器有8个核心the max_parallel_workers是8并且工作进程和每个聚集的值是32(8*4),那么我从原始配置中获得的数字4是每1个并行工作4个收集.

Hud*_*nPH 8

经过一番搜索,我找到了一些答案,这可以帮助想要启用并拥有基本配置的人,如果您有 4 个内核(CPU):

您的最大工作进程将是核心数量,而最大并行需要具有相同数量:

max_worker_processes = 4
max_parallel_workers = 4
Run Code Online (Sandbox Code Playgroud)

收集更复杂,因为可以根据您的需要和资源操作此值,有必要进行测试以获得最佳值,但对于启动值,您可以使用 cores/2。

max_parallel_workers_per_gather = 2
Run Code Online (Sandbox Code Playgroud)

这不是最终答案,有一些遗漏点......我仍在搜索和更新这个答案或等待更好的答案。