[英]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.