在Thrift Python服务器上,如何使用TThreadPoolServer配置池中的最大线程?

时间:2016-07-12 10:32:23

标签: python thrift

我有一个由thrift调用的python服务。我想尝试 TThreadPoolServer 而不是 TThreadedServer 。在我尝试之后,我发现TThreadPoolServer mod具有较低的CPU速率但速度较低。我猜池中的默认最大线程很小。但我不知道如何在thrift python服务器中配置这个参数。谁能知道这个?感谢。

1 个答案:

答案 0 :(得分:1)

请参阅源代码TServer.py中的定义。

TThreadPoolServer池中的默认线程数为10.请参阅源代码中第143行,TThreadPoolServer类的定义。

您可以通过调用以下方法更改池中的线程数:TThreadPoolServer.setNumThreads(self, num)

更新:

如果您的脚本需要的CPU比I / O多,我建议您尝试使用TForkingServer。由于GIL,它可能比线程服务器更好。

来自源代码第199-202行的评论,在TForkingServer类的定义下:

  

为每个请求分配新进程的Thrift服务器

     

这比线程服务器更具可扩展性,因为它不会导致GIL争用。