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

多少量级才算是高并发相关推荐

  1. 到底什么级别才算是高并发?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:边鹏_尛爺鑫 https://segmentfault.co ...

  2. 到底多大并发才算高并发?一文带你全面认识高并发!

    点击上方蓝色小字,关注"涛哥聊Python" 重磅干货,第一时间送达 作者 | 骆俊武 来源 | IT人的职场进阶 高并发,几乎是每个程序员都想拥有的经验.原因很简单:随着流量变大 ...

  3. 到底多大并发才算高并发?

    高并发,几乎是每个程序员都想拥有的经验.原因很简单:随着流量变大,会遇到各种各样的技术问题,比如接口响应超时.CPU load升高.GC频繁.死锁.大数据量存储等等,这些问题能推动我们在技术深度上不断 ...

  4. 高并发到底要怎么算才是高并发?

    什么是并发: 并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行. 什么是高并发: 高并发( ...

  5. 到底多大才算高并发?

    定义: 高并发(High Concurrency)是使用技术手段使系统可以并行处理很多请求. 关键指标: -响应时间(Response Time) -吞吐量(Throughput) -每秒查询率QPS ...

  6. qps多少才算高并发_要大到什么程度?才算高并发?

    文章目录 前言 在这里插入图片描述 一.什么是高并发? 定义: 关键指标: 关键指标的维度: 并发 引申指标: 二.多大算高并发 场景1: 场景2: 三.高并发的本质 对比包括: 前提包括: 总结 前 ...

  7. 什么是并发、并行、高并发?到底多大才算高并发?

    并发是指在一个时间段内有多个进程在执行.  并行指的是在同一时刻有多个进程在同时执行. 如果是在只有一个CPU的情况下,是无法实现并行的,因为同一时刻只能有一个进程被调度执行,如果此时同时要执行其他进 ...

  8. qps多少才算高并发_AGV小车价格多少才算合适?

    对于AGV小车,相信大家对其都有一定了解,今天我们就不一一介绍了,回到主题,AGV小车价格行情怎样?AGV小车价格多少才算合适,你才敢买?AGV小车的价格是根据它的额定载荷和AGV类型来规定的,额定载 ...

  9. 什么才算是高质量的代码?

    好的代码一定是整洁的,并且能够帮助阅读的人快速理解和定位.好的代码可以加快应用的开发迭代速度,不必花过多的时间来修复 bug 和完善代码.好的代码不但能够使得新的项目成员更容易加入项目,同时方便项目组 ...

最新文章

  1. 如何把一个用户加入sodu组
  2. onethink二级导航调用
  3. Vue.set()详解
  4. 基于JAVA+SpringBoot+Mybatis+MYSQL的垃圾分类管理系统
  5. 面试官问你Java内存区域你用new创建对象来解释
  6. oracle 12c容器数据库备份和恢复,oracle 12c数据库备份与恢复
  7. 3.1 Zabbix企业级分布式监控系统 --- zabbix 安装
  8. cv2不能读取中文路径
  9. Redis的安装教程(Windows+Linux)【超详细】
  10. python医学科研中能做什么-科研画图都用什么软件?
  11. html扑克牌展开,HTML5 canvas扑克牌花式洗牌动画
  12. mac和windows共享键盘鼠标方案
  13. vvc代码阅读 encodeCtus()
  14. 找不到工作的测试员一大把,大厂却招不到优秀软件测试员?高薪难寻测试工程师。
  15. VINS-Mono视觉SLAM总体设计框架解读
  16. Oracle执行UPDATE语句的步骤
  17. 数据压缩算法之zigZag--一种对负数友好的编码(2000多字总结)
  18. 十年SEO风云巨变,还有多少站长在坚持
  19. excel 将图片的链接URL 显示为图片 转
  20. Nature重磅综述 |关于RNA-seq,你想知道的都在这

热门文章

  1. 近10年的网盘发展史(那些年你的网盘存了多少资料)
  2. abp vnext没有生成动态代理js代码
  3. 学会使用QT的帮助文档
  4. 综述 | 最新双曲深度神经网络综述论文
  5. 微机原理—可编程计数器/定时器8253概念详解
  6. 使用Neo4j+InteractiveGraph实现豆瓣电影知识图谱可视化
  7. 读书笔记----10日摘抄整理(02)
  8. java做网站需要什么_java怎么做网站?java做网站要掌握哪些技术?
  9. .php文件是病毒吗,php病毒
  10. Linux远程和文件传输工具Xshell、Xftp使用方法