ank*_*r90 3 amazon-web-services amazon-elastic-beanstalk
我有一个 AWS beanstalk 环境,并且有旧的 wsgi 设置(如下所示),我不知道它在内部是如何工作的,有人可以指导我吗?
NumProcesses:7 -- number of process
NumThreads:5 -- number of thread in each process
由于 AWS beanstalk 级别中没有内存和 cpu 设置,因此此配置如何使用内存和 cpu。
添加到@Marcin
\nGunicorn 应该只需要 4-12 个工作进程即可每秒处理数百或数千个请求。
\nGunicorn 依赖操作系统在处理请求时提供所有负载平衡。一般来说,我们(gunicorn 创建者)建议 (2 x $num_cores) + 1 作为开始的工作人员数量。虽然不太科学,但该公式基于这样的假设:对于给定的核心,一个工作线程将从套接字读取或写入,而另一个工作线程正在处理请求。
\n要查看选项设置中的设置如何映射到gunicorn,您可以通过 ssh 进入您的 eb 实例,请转至
\n$ eb ssh\n$ cd cd /var/app/current/\n$ cat Procfile \nweb: gunicorn --bind 127.0.0.1:8000 --workers=3 --threads=20 api.wsgi:application \n--threads\n正整数,通常在 2-4 x $(NUM_CORES) 范围内。您\xe2\x80\x99 将希望稍微改变一下,以找到最适合您的特定应用程序\xe2\x80\x99 工作负载的方法。
线程选项仅适用于 gthread 工作线程类型。Gunicons 默认工作线程类是sync,如果您尝试使用同步工作线程类型并将线程设置设置为大于 1,则将自动使用 gthread 工作线程类型
\n基于以上所有我个人会选择
\nworkers = (2 x $NUM_CORES ) + 1\nthreads = 4 x $NUM_CORES \n对于具有 2 个核心的 t3.medum 实例,可转换为
\nworkers = 5\nthreads = 8\n显然,您需要根据您的用例进行调整,并将它们视为默认值,这很可能不适合您的特定应用程序用例,请阅读下面的参考资料,了解如何为您的用例选择正确的设置
\n参考:
\n参考:Gunicorn 工作线程和线程\n参考:https://medium.com/building-the-system/gunicorn-3-means-of-concurrency-efbb547674b7 \n参考: https: //docs.gunicorn.org/en/stable /settings.html#worker-class
\n| 归档时间: | 
 | 
| 查看次数: | 2227 次 | 
| 最近记录: |