【问题标题】:Python/Twisted multiuser server - what is more efficient?Python/Twisted 多用户服务器 - 什么更有效?
【发布时间】:2023-12-10 00:17:01
【问题描述】:

在 Python 中,如果我希望我的服务器在 CPU 方面能够很好地扩展,我显然需要生成多个进程。我想知道哪个更好(使用 Twisted):

A) 管理进程(持有实际套接字连接的那个)将接收到的数据包放入一个共享队列(来自多处理模块的那个),工作进程将数据包拉出队列,处理它们并发送结果返回给客户端。

B) 管理器进程(持有实际套接字连接的那个)启动一个延迟线程,然后调用进程池上的 apply() 函数。一旦结果从工作进程返回,管理器将结果发送回客户端。

在这两种实现中,工作进程都使用线程池,因此它们可以同时处理多个数据包(因为会有很多数据库查询)。

【问题讨论】:

    标签: python twisted multi-user


    【解决方案1】:

    我认为 B 是有问题的。该线程只能在一个 CPU 上运行,即使它运行一个进程,该线程仍在运行。 A可能会更好。

    最好尝试在时间方面进行测量,看看哪个更快,哪个扩展性好。但是,我要重申,我非常怀疑 B 能否很好地扩展。

    【讨论】:

      【解决方案2】:

      我认为“A”是你想要的答案,但你不必自己做。

      你考虑过ampoule吗?

      【讨论】:

        最近更新 更多