如何为 ThreadPoolExecutor 和 ProcessPoolExecutor 设置最有效的参数?



如果我理解正确,ProcessPool你在CPU受限时使用它。那么,如果我是四核,这是否意味着最有效的max_workers是 4?我怎么知道哪个对ThreadPool最有效,因为如果我理解正确,应该在 I/O 绑定时使用?

这是使用来自 pythonconcurrent.futures的内置函数。

tdelaney 的评论!

你必须衡量它。


我通常使用像 tdelaney 概述的方法来获得程序的总体感觉。 您的大部分程序是在解析 JSON 还是 HTML?而不是它受 CPU 限制。 它是否发出db/http/network request?IO 绑定

然后我参数化所有工作器/进程/线程池,以允许从启动开始配置它们。 然后使用 tdelaney 的分析进行测试,以确定默认配置值应该是什么。 之后,应用和测量工作负载,处理延迟、吞吐量、错误等。 然后调整配置选项,并应用相同的工作负载。


有许多很棒的性能测试工具:

  • ab
  • vegeta
  • siege
  • 消息队列/代理通常公开 HTTP 接口,因此可以使用上述工具之一加载积压工作,或者以一致的吞吐率应用积压工作

相关内容

  • 没有找到相关文章

最新更新