配置uwsgi服务器以提高性能

poi*_*rez 2 django performance uwsgi

我正在为django应用程序部署uwsgi服务器.每个请求的延迟大约为2秒.我需要处理100 QPS.在4核机器上,我应该如何配置进程数和线程数?我试着玩这些价值观,但我不明白我在做什么.

dge*_*gel 6

浏览uWSGI 要了解的事项页面.uWSGI应该可以轻松实现每秒100个请求.

根据我经历过的uWSGI行为,我建议您只从进程开始,不要使用任何线程.通过进程和线程,我们观察到在进程上使用线程似乎具有亲和力.这导致一个进程处理所有请求,直到它的线程池被完全占用,然后才由下一个进程处理请求.这导致资源的利用率很低,因为单个核心与所有其他空闲状态一起被最大化.关闭线程可以为我们的特定使用模型带来巨大的性能提升.

您的经历可能会有所不同.uWSGI作者强调没有任何魔法配置组合 - 它完全取决于您的特定用例.您需要根据各种配置对应用进行基准测试,以找到最佳位置.此外,除非您能够使用完美模拟实际生产负载的基准测试,否则您将需要在部署后继续监控性能并有条不紊地调整设置.

从物联网知识页面:

设置要使用的进程或线程数没有神奇的规则.它非常依赖于应用程序和系统.像过程= 2*cpucores这样的简单数学是不够的.您需要尝试各种设置,并准备好持续监控您的应用.uwsgitop可以成为找到最佳价值的好工具.