Ben*_*han 14 django multithreading gunicorn
从文档中 -有多少工人,
\n不要根据您期望的客户数量来调整员工数量。Gunicorn 应该只需要 4-12 个工作进程即可每秒处理数百或数千个请求。
\n一般来说,我们建议 (2 x $num_cores) + 1 作为开始的工作人员数量。
\n从线程中,
\n用于处理请求的工作线程的数量。
\n使用指定数量的线程运行每个工作线程。
\n正整数,通常在 2-4 x $(NUM_CORES) 范围内。您\xe2\x80\x99 需要稍微改变一下,以找到最适合您的特定应用程序\xe2\x80\x99s 工作负载的选项。
\n现在的问题是,没有多少线程和工作线程可以每秒处理数百或数千个请求?
\n假设我有一台双核机器,我设置了 5 个工作线程和 8 个线程。我可以满足 40 个并发请求吗?
\n如果我要处理数百或数千个请求,我将需要一百个核心?
\n这行代码很难理解:
\n\n\nGunicorn 每秒只需要 4-12 个工作进程即可处理数百或\n数千个请求。
\n
AKX*_*AKX 14
现在的问题是,没有多少线程和工作线程可以每秒处理数百或数千个请求?假设我有一台双核机器,我设置了 5 个工作线程和 8 个线程。我可以满足 40 个并发请求吗?
是的,有 5 个工作进程,每个进程有 8 个线程,可以服务 40 个并发请求。另一个问题是,它们在双核机器上的运行速度有多快。
如果我要处理数百或数千个请求,我将需要一百个核心?
不完全的。每秒请求数与“并发请求数”不同。
如果每个请求恰好需要 1 毫秒来处理,那么单个工作线程可以提供 1000 RPS。如果每个请求需要 10 毫秒,则单个工作人员会发出 100 RPS。
如果某些请求需要 10 毫秒,而其他请求最多需要 5 秒,那么您将需要多个并发工作线程,因此需要 5 秒的一个请求不会“占用”您的所有服务能力。
| 归档时间: |
|
| 查看次数: |
16910 次 |
| 最近记录: |