我有一个由thrift调用的python服务。我想尝试 TThreadPoolServer 而不是 TThreadedServer 。在我尝试之后,我发现TThreadPoolServer mod具有较低的CPU速率但速度较低。我猜池中的默认最大线程很小。但我不知道如何在thrift python服务器中配置这个参数。谁能知道这个?感谢。
答案 0 :(得分:1)
请参阅源代码TServer.py中的定义。
TThreadPoolServer
池中的默认线程数为10.请参阅源代码中第143行,TThreadPoolServer
类的定义。
您可以通过调用以下方法更改池中的线程数:TThreadPoolServer.setNumThreads(self, num)
。
更新:
如果您的脚本需要的CPU比I / O多,我建议您尝试使用TForkingServer
。由于GIL,它可能比线程服务器更好。
来自源代码第199-202行的评论,在TForkingServer
类的定义下:
为每个请求分配新进程的Thrift服务器
这比线程服务器更具可扩展性,因为它不会导致GIL争用。