我正在开发一个扭曲的web应用程序,它上传并加密文件,并将url+key返回给用户。
我的任务是扩展这个应用程序。在当前有超过3-4并发上传请求时,性能将显著下降。
我不是Twisted专家,但我认为这是因为它在单个python进程中运行,是一个高cpu应用程序和GIL吗?
我怎么才能把这个放大呢?
如果这是一个不同的框架,比如Flask,我会把uwsgi放在它前面,并缩放进程的数量。对于Twisted来说,类似的东西会起作用吗?如果是这样的话,一般都会使用什么工具呢?
发布于 2019-04-03 00:00:07
如果您认为可以在应用程序前面抛出uwsgi,我认为它非常接近共享--什么都没有。因此,您可以运行程序的多个实例,并从每个实例中获得一个核心的性能值。
对于如何准确地运行多个实例,有两个非常明显的选项。你可以在前面有一个负载平衡器。您可以让进程共享一个侦听端口。可能还有更多的可能性。
由于您的协议似乎是HTTP,任何旧的HTTP负载均衡器都应该适用。它不需要Twisted或者Python本身(当然可以)。
如果您希望共享侦听端口,Twisted有用于在进程(IReactorSocket)之间传递文件描述符和启动从父进程(IReactorProcess)继承文件描述符的新进程的API。
https://stackoverflow.com/questions/55483727
复制相似问题