[英]Having more than one client per thread in c10k
在c10k问题中为什么每个客户端通常使用一个线程有最佳的理由吗?
我们可以在每个线程上放置5、10或25吗? 绩效会有负面变化吗?
每个客户端只有一个线程似乎对系统造成了很大的负担,如果每个线程只有25个线程,那么我们可以有400个线程(10,000个)而不是10,000个(10,000个)。
有两种完全不同的模型来处理10K +连接:
两种型号均可用于超过100K的连接,并且两种型号在某些领域都有其优势。 直接比较,它们之间的区别如下:
多线程:
单线程:
可以将这两种模型结合起来。 在这种情况下,通常每个核心使用一个线程(而不是用于N个连接的一个线程)。 此模型有一些很好的用例。 但是,还有一个巨大的问题:结合了两种模型的缺点。 这意味着,您必须花所有精力在线程安全 , 非阻塞和异步上 。 通常,工作量是纯模型之一的两倍。
这就是为什么对于大多数应用而言, 纯模型通常比混合模型更受青睐。 边缘组件例外,它们必须每秒处理数百万个请求,例如负载平衡器和代理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.