如何扩展CPU绑定的Twisted应用程序?

问题描述 投票:1回答:1

我正在开发一个扭曲的Web应用程序,它上传文件并加密它们,将url +键返回给用户。

我的任务是扩展这个应用程序。当有超过3-4个并发上载请求时,性能将显着下降。

我不是Twisted专家,但我认为这是因为它在一个python进程中运行,是一个高CPU应用程序和GIL?

我怎么能去缩放呢?

如果这是一个不同的框架,比如Flask,我会把uwsgi放在它前面并缩放进程数。 Twisted会有类似的工作吗?如果有的话,通常会使用哪些工具?

python twisted scaling
1个回答
0
投票

如果你认为你可以在应用程序面前抛出uwsgi,我认为它非常接近于无共享。因此,您可以运行该程序的多个实例,并从每个实例获得核心的性能。

对于如何运行多个实例,有几个非常明显的选项。你可以在前面安装负载均衡器。您可以让进程共享侦听端口。也有更多的可能性。

由于您的协议似乎是HTTP,因此任何旧的HTTP负载均衡器都应该适用。它不需要是Twisted或Python本身(虽然它可能是)。

如果你想共享一个监听端口,Twisted有API用于在进程(IReactorSocket)之间传递文件描述符,以及用于启动从父进程继承文件描述符的新进程(IReactorProcess)。

© www.soinside.com 2019 - 2024. All rights reserved.