高并发(High Concurrency)是互联网分布式系统架构设计中必需考虑的因素之一,它通常是指,通过设计保证系统能够同时并行解决很多请求。高并发是概念上的逻辑,表达的含义就是同一时间点出现大量的请求。高并发相关常使用的少量指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发使用户数等。
一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间
- QPS(TPS):每秒钟request/事务 数量
- 并发数: 系统同时解决的request/事务数
- 响应时间: 一般取平均响应时间
满足一下对应关系:
QPS(TPS)= 并发数/平均响应时间 或者者 并发数 = QPS*平均响应时间
一个系统吞吐量通常由QPS(TPS)、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应使用场景访问压力下,只需某一项达到系统最高值,系统的吞吐量就上不去了,假如压力继续增大,系统的吞吐量反而会下降,起因是系统超负荷工作,上下文切换、内存等等其它消耗导致系统性能下降。
我们做项目要排计划,可以多人同时并发做多项任务,也可以一个人或者者多个人串行工作,始终会有一条关键路径,这条路径就是项目的工期。
系统一次调使用的响应时间跟项目计划一样,也有一条关键路径,这个关键路径是就是系统影响时间;
关键路径是有CPU运算、IO、外部系统响应等等组成。
我们在做系统设计的时候就需要考虑CPU运算、IO、外部系统响应因素造成的影响以及对系统性能的初步预估。
而通常境况下,我们面对需求,我们评估出来的出来QPS、并发数之外,还有另外一个维度:日PV。
通过观察系统的访问日志发现,在使用户量很大的情况下,各个时间周期内的同一时间段的访问流量几乎一样。比方工作日的每天早上。只需能拿到日流量图和QPS我们即可以推算日流量。
想要学习Dubbo框架、zookeper基本原理、redis分布式缓存、JVM性能优化,Nginx+apache+Tomcat集群部署、大数据hadoop,Hbase实时计算spark、storm、数据分析分词和权重等核心技术;需要的可以关注之后私信哈,记得要点赞转发噢!!!