多少量级才算是高并发

我认为高并发系统的本质就是充分利用硬件资源,提升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等。比如吞吐量与响应时间达到平衡。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值