postgresql - Postgresql 10 - 并行配置
问题描述
有 4 种配置可以启用并行并进行优化,但 PostgreSQL 的文档没有说明任何有关值或计算的内容。我的问题是:
1- 如何计算 和的
max_parallel_workers
值 ?max_parallel_workers_per_gather
max_worker_processes
2-
work_mem
可以根据连接和内存(RAM)计算,但是work_mem
如果我启用并行,需要改变一些东西吗?
我的假设是:如果机器有 8 个核心the max_parallel_workers
是 8,并且工作进程和每次收集的值为 32(8*4),我从原始配置中取的数字 4 是每 1 个并行工作 4 个收集。
解决方案
经过一番搜索,我找到了一些答案,这可以帮助想要启用并拥有基本配置的人,如果您有 4 个内核(CPU):
您的最大工作进程将是核心数量,并且最大并行需要具有相同的数量:
max_worker_processes = 4
max_parallel_workers = 4
收集更复杂,因为可以根据您的需要和资源来操纵此值,有必要进行测试以获得最佳值,但是对于启动值,您可以使用 cores/2。
max_parallel_workers_per_gather = 2
这不是最终答案,还有一些遗漏...我仍在搜索和更新此答案或等待更好的答案。
推荐阅读
- javascript - 找到可实现的字典最小序列
- perl - 运行命令 Windows 10 时 Perl 一直闪烁
- json - 在 Python 中使用 json.dumps 将 JSON 字符串转换为 JSON 对象
- python - 将两个数据框合并在一起
- c++ - C++ 数据存储
- javascript - 在 Node 中使用 mySQL 导致 Async/Await 出现问题
- node.js - 如何使用节点从网站上抓取数据
- node.js - SyntaxError: Unexpected reserved word => prettier/third-party.js
- arrays - Dataweave:将正则表达式模式匹配到数组的每个元素
- vue.js - Vue-Router - 将数据从一个路由组件传递到另一个