2009-01-23 55 views
2

在Python中,如果我希望我的服务器能够很好地按比例缩放,我显然需要产生多个进程。我想知道哪个更好(使用Twisted):Python/Twisted多用户服务器 - 哪种更高效?

A)管理进程(持有实际套接字连接的进程)将收到的数据包放入一个共享队列(多处理模块中的一个)数据包退出队列,处理它们并将结果发送回客户端。 B)管理进程(持有实际套接字连接的人)启动一个延迟线程,然后在进程池上调用apply()函数。一旦结果从工作进程返回,管理器将结果发送回客户端。

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

回答

2

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

最好尝试和衡量两者的时间,并看看哪一个更快,哪个比例好。但是,我会重申,我非常怀疑B会很好地扩展。

1

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

你考虑过吗ampoule