多少量级才算是高并发
我認為高并發系統的本質就是充分利用硬件資源,提升cpu、io設備的綜合利用率。
操作系統利用中斷等分時復用機制解決了cpu的利用率問題,利用dma技術解決了io設備的利用率問題。但是并沒有解決兩者相互配合的問題,那么如何來解決呢?
常見的思路有多進程模型,多線程模型,協程,今天我們來討論一下多線程模型的實現思路。
為了避免重復創建線程,多線程模型一般使用線程池技術。為了充分利用cpu和io設備利用率,理想情況是當cpu忙碌的時候,io設備也不空閑。要做到這一點,那么必須協調io密集型線程和cpu密集型線程相互配合,設置合理的線程數。
我們知道線程是cpu的最小調度單位,從cpu的角度上看,當某個線程忙著從io設備拷貝數據時,應該把該線程的時間片切掉,調度給其他線程。當該線程完成io操作之后,再把時間片切回去。這樣就能充分利用cpu和io。
那么設置多少個線程比較合適呢?
如果應用是cpu密集型的,理論上線程數等于cpu核數+1就可以了,多一個的原因是當偶爾內存頁缺失時,那個線程能夠頂上。
如果應用是io密集型的(當然純io密集型是不存在的),理論上線程數等于 cpu核數*(io用時/cpu用時 + 1)。io用時/cpu用時 表示 ios用時與cpu用時的比例。
那么回答一下多少量級才算是高并發呢?我認為能充分利用cpu和io設備的綜合利用率就算是高并發。比如4核8G機器單機一般1000QPS等。比如吞吐量與響應時間達到平衡。
總結
以上是生活随笔為你收集整理的多少量级才算是高并发的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 上下文切换时对用户task和
- 下一篇: 第1讲 移动互联网概述