首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么使用Gevent池来管理服务器中的Greenlet连接?

为什么使用Gevent池来管理服务器中的Greenlet连接?
EN

Stack Overflow用户
提问于 2022-01-12 02:16:33
回答 1查看 250关注 0票数 1

我正在使用Python服务器,它为到服务器的每个连接生成一个绿色链接。目前,服务器不使用绿池。虽然我的直觉是,使用池会提高性能(主要是响应时间和每秒请求吞吐量),但在我实现一个小程序池的尝试和错误中,仅仅对每个greenlet/connection使用Gevent.spawn()似乎没有多大的性能好处。

我已经看到了这个问题,很有帮助,尽管我对绿池的应用很好奇,比如服务器中的盖特·普尔。这是一个有用的模式吗,一个线程池?或者,对于服务器来说,使用池并不重要,因为与线程相比,Greenlet是如此的轻量级吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-13 18:51:29

Greenlet是轻量级的,但它们确实消耗内存。因此,尽管一个进程可以支持的线程数量将远远超过操作系统能够支持的线程数量,但它们仍然要付出代价。因此,池仍然是限制可生成的绿数的有用工具--但它的大小可能比实际线程的限制要大得多。

此外,由于它们的协作多任务处理特性,每个请求的延迟(假设每个新请求都由一个新的绿地处理)将开始增加,因为绿地的数量超过了一定的阈值。在一次允许更多请求与在每个请求都需要越来越多的时间完成时创建糟糕的UX之间有一种权衡。有时最好是限制传入的负载并拒绝新的请求--池是这样做的一个有用方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70675588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档