到底什么级别才算是高并发?
点击上方“方志朋”,选择“设为星标”
回复”666“获取新整理的面试资料
作者:边鹏_尛爺鑫
https://segmentfault.com/a/1190000010844969
大家心里仔细想想,当你们听到高并发网站时,心里对这个网站是个什么概念?
首先想到的是淘宝吗?带着问题,我们一起思考技术~
写这个话题是因为我对搜索引擎给我的答案很不满意,然后决定把思考的一些东西分享出来,希望可以大家彼此讨论下。
我们经常在面试的时候,被问到有没有高并发的经验?先不说哪些考高并发的装逼公司。我思考的是什么才算是高并发?你一天几个pv肯定高不了。首先在网上查找一下,并未找到明确的标准定义。那么什么是并发呢?
并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。
摘自百度百科
我们说的高并发是什么?
上面的定义明显不是我们通常所言的并发,在互联网时代,所讲的并发、高并发,通常是指并发访问。也就是在某个时间点,有多少个访问同时到来。
我看到有人给高并发下了类似的定义:
高并发通常是指我们提供的系统服务能够同时并行处理很多请求。
来看看这个定义,这里首先把并发给混淆到并行了。关于并发并行的区别看这里我就不多说,继续探讨并发。
然后定义又说很多请求?什么叫很多请求?做为中国人,这个词让我想象力一发不可收拾......好了,拉回来,继续本文。
那么从上面的分析,可以看出来高并发在网络上业界也没有明确的定义。但根据我搜索情况,一般都是pv在千万级别以上的公司才会涉及到这个概念。所以我得出一个自定义概念:如果某个系统的日pv在千万级别以上,他就可能是一个高并发的系统。
为什么说是可能?那是因为有的公司完全不走技术路线,全靠机器堆,这不在我们的讨论范围。
高并发的问题,我们具体该关心什么?
讲真话,高并发是个比较抽象的概念。很难有一个统一的可衡量的标准。哪么有一些其它维度的标准指标来衡量系统的性能吗?
搬出以前计算机课程里边的一些指标来跟大家聊聊。网站性能测试指标(QPS,TPS,吞吐量,响应时间)详解,这篇看下。
先声明几个概念,别打瞌睡。
1.QPS(TPS):每秒钟 request/事务 数量,在互联网领域,指每秒响应请求数(指http请求);
2.吞吐量:单位时间内处理的请求数量(通常由QPS与并发数决定);
3.响应时间:系统对一个请求做出响应的平均时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间(我认为这里应该仅包含处理时间,网络传输时间忽略)。
这里一定要注意呃,QPS ≠ 并发数
并发是指,某个时刻有多少个访问同时到来。QPS是指秒钟响应的请求数量。那么这里就肯容易推算出一个公式:
QPS = 并发数 / 平均响应时间
后面我们的分析都是围绕这个公示来进行展开,没明白的再回味一下。
现在我们来假设一个场景:既然QPS是每秒钟处理的http请求数量。那么1s = 1000ms。假设我们当前一个http请求服务器处理完成需要100ms(即那么 平均响应时间 = 100ms )。那么它1s钟可以处理10个请求。也就是说 qps = 10。推算出 并发数 = 10
常常我们被问到高并发的问题,其实从某种程度上来说是怎么提高现有程序的性能。现在我们基于上面的假设,来进行分析。假设现在有个系统性能上就是我们上面的假设,它每天有 300万pv,运行在单机上(当然经常宕机),按照上面的系统性能数据,给出优化解决方案。
提高并发能力
通过上面的分析,要提升并发能力,我们就需要提升我们的qps(其实这里并不完全正确,为了说明问题,我们先放弃一部分正确性)
最快速解决方案,就是增加机器。我们根据以上情况来实际计算一下。
1.访问量:200w pv
2.QPS:10
根据日常经验,80% 的访问量集中在 20%的时间,算一下这 200w pv实际需要机器达到多少qps才能满足。
qps = (200w * 0.8) / (24 * 3600 * 0.3)
qps = 61.7
实际上如果在单机上,要求我们每秒钟处理请求必须达到 61.7 以上才行,而实际上我们当前系统的qps是 10
。那么怎么解决?
方案一:上机器
个人的能力是有限的,团队的力量是无穷的。既然一台机器搞不定,我们就多上几台机器。这就涉及到db主从、读写分离、负载均衡等技术。
它的原理就是分流,把以前集中的压力分散开来。改方案见效快,灵活,实践起来也更快。
方案二:增加单机性能
单机到底性能能够增加到一个什么程度,这取决于你的机器配置,也取决于你的服务到底有多复杂。
ps:写到这里突然有点能够理解为什网上对高并发都是讲很多请求,没有具体数据了,因为这真的只能针对业务来讲,100个并发对静态网页来说根本没有的事儿,但是对于某些密集计算型的估计...
那么常见的单机如何提升性能?比如:增加不常变化数据的缓存,开启php的opcache,优化代码(如:n+1问题、多重嵌套循环、深层递归等),db表优化等等。由于这些每一个点拿出来都够写一本书了。咋就不继续下去。
总结
由于笔者自己也是没有实际经历过kw级别pv场景,很多东西讲的不一定对,本文也是理清自己的一点思路。希望能够与更多朋友进行讨论。
也希望本文能够解决你的一点疑惑,让我们能够从高大上的概念落实到实际问题中去。
参考资料
1.http://h5ip.cn/ifP8
2.http://www.ha97.com/5095.html
热门内容: 史上最烂的项目:苦撑 12 年,600 多万行代码一次 Jar 包升级引发的血案 & 解决如何优雅的导出 Excel
JDK 13 新特性一览某小公司RESTful、共用接口、前后端分离、接口约定的实践
请停止学习框架IntelliJ IDEA 2019.3这回真的要飞起来了,新特性抢先看!最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。明天见(。・ω・。)ノ♡
到底什么级别才算是高并发?相关推荐
- 多少量级才算是高并发
我认为高并发系统的本质就是充分利用硬件资源,提升cpu.io设备的综合利用率. 操作系统利用中断等分时复用机制解决了cpu的利用率问题,利用dma技术解决了io设备的利用率问题.但是并没有解决两者相互 ...
- 到底多大才算高并发?
定义: 高并发(High Concurrency)是使用技术手段使系统可以并行处理很多请求. 关键指标: -响应时间(Response Time) -吞吐量(Throughput) -每秒查询率QPS ...
- 什么是并发、并行、高并发?到底多大才算高并发?
并发是指在一个时间段内有多个进程在执行. 并行指的是在同一时刻有多个进程在同时执行. 如果是在只有一个CPU的情况下,是无法实现并行的,因为同一时刻只能有一个进程被调度执行,如果此时同时要执行其他进 ...
- 到底多大并发才算高并发?一文带你全面认识高并发!
点击上方蓝色小字,关注"涛哥聊Python" 重磅干货,第一时间送达 作者 | 骆俊武 来源 | IT人的职场进阶 高并发,几乎是每个程序员都想拥有的经验.原因很简单:随着流量变大 ...
- 到底多大并发才算高并发?
高并发,几乎是每个程序员都想拥有的经验.原因很简单:随着流量变大,会遇到各种各样的技术问题,比如接口响应超时.CPU load升高.GC频繁.死锁.大数据量存储等等,这些问题能推动我们在技术深度上不断 ...
- 高并发到底要怎么算才是高并发?
什么是并发: 并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行. 什么是高并发: 高并发( ...
- qps多少才算高并发_要大到什么程度?才算高并发?
文章目录 前言 在这里插入图片描述 一.什么是高并发? 定义: 关键指标: 关键指标的维度: 并发 引申指标: 二.多大算高并发 场景1: 场景2: 三.高并发的本质 对比包括: 前提包括: 总结 前 ...
- qps多少才算高并发_AGV小车价格多少才算合适?
对于AGV小车,相信大家对其都有一定了解,今天我们就不一一介绍了,回到主题,AGV小车价格行情怎样?AGV小车价格多少才算合适,你才敢买?AGV小车的价格是根据它的额定载荷和AGV类型来规定的,额定载 ...
- 什么才算是高质量的代码?
好的代码一定是整洁的,并且能够帮助阅读的人快速理解和定位.好的代码可以加快应用的开发迭代速度,不必花过多的时间来修复 bug 和完善代码.好的代码不但能够使得新的项目成员更容易加入项目,同时方便项目组 ...
最新文章
- java线程——join
- 《不留》--王菲 Faye
- Linux Kernel TCP/IP Stack — 协议栈收包处理流程
- 深度学习笔记二:PAC,PAC白化,ZCA白化
- Nodejs开源项目推荐
- 嵌入式linux应用层中断函数,嵌入式LINUX驱动开发(中断处理函数)
- 基于JAVA+SpringMVC+Mybatis+MYSQL的校园订餐系统
- 2016012013 王雪 散列函数的应用及其安全性
- 虚拟机管理程序、虚拟化和云: 深入剖析 PowerVM 虚拟机管理程序
- PCShare流量检测报告
- android actionBar searchview 默认展开,并且放大镜图标在编辑框内。
- matlab ols hac,R语言中实现广义相加模型GAM和普通最小二乘(OLS)回归
- 内分泌6项检查费用_内分泌6项检查费用是多少 详解内分泌6项检查是什么
- 入门,前后端实现简单账号密码登录
- 15 个边玩游戏边学编程的网站
- 中秋节活动中奖名单公布啦!!
- 1.MySQL数据库 2.SQL语句
- 小程序中的axio——flyio的使用
- C-Kermit在linux 下的安装和使用
- python——三角函数用法