但是,对于max_worker_processes的最优值,我找不到任何可靠的建议。
一些源假设值不应该高于可用内核的数量,但这是否正确,让服务器线程执行大量IO操作?
假设我有8个PG容器核心,并计划并行处理大约100个客户端。这是否可行,特别是在默认的max_worker_processes=8中?
任何可信的参考都将不胜感激。
发布于 2021-07-12 17:15:19
合理的限制不取决于客户端连接的数量,而取决于并发查询的实际上限。
如果保证这些客户机中只有一个同时处于活动状态,则可以将max_worker_processes、max_parallel_workers和max_parallel_workers_per_gather设置为比存储所能处理的核数或并行I/O操作少一个,无论两者中的任何一个比较小。本质上,一个查询就可以消耗所有可用的资源。
另一方面,如果其中许多客户端可能同时运行查询,则应该通过将max_parallel_workers_per_gather设置为0来禁用并行查询,以避免数据库重载。
关于您对我的回答的评论:如果您的目标是限制活动查询的数量,请使用连接池。
https://stackoverflow.com/questions/68351047
复制相似问题