[转帖]架构修炼-10:高并发设计

架构,修炼,并发,设计 · 浏览次数 : 0

小编点评

**高并发的系统性能衡量** **1. 吞吐量 (Throughput)** * 指的是每秒处理的业务数量。 * 当系统负载增加时,吞吐量会下降,因为系统资源会被抢占。 **2. 响应延迟 (Response Delay)** * 指的是从请求发出到响应完成的延迟时间。 * 降低响应延迟对于用户体验非常重要,因为用户等待的时间越长,就会对网站体验产生负面影响。 **3. 系统处理合理状态 (Load Balance)** * 指的是系统资源的使用情况与负载之间的平衡状态。 * 当系统负载过载时,需要增加资源分配,才能处理更多请求。 **性能优化目标** * 缩短响应时间 * 提高系统并发数 * 优化系统处理合理状态 **性能优化手段** * **空间换时间:**当系统处理时间瓶颈时使用,以减少内存访问时间。 * **时间换空间:**当数据大小瓶颈时使用,以减少数据传输时间。 * **优化算法:**关注算法是否高效,逻辑优化,空间时间优化,任务并行。 * **代码优化:**代码实现逻辑是否合理,对象创建多少,循环是否高效。 **性能优化层次** * **架构设计:**如何拆分系统,如何使各个部分负责更加均衡。 * **算法逻辑:**关注算法是否高效,逻辑优化,空间时间优化,任务并行。 * **代码层次:**关注代码实现逻辑是否合理,对象创建多少,循环是否高效。

正文

一、如何衡量高并发的系统性能

1.吞吐量Throughput:

2.响应延迟Response Delay:

二、性能优化目标

1.缩短响应时间

2.提高系统并发数(提升吞吐量)

3.系统处理合理状态(机器利用率)

随着系统压力增加(X坐标:在线业务人数),

Y坐标:绿色机器利用率,紫色并发数,蓝色:响应时长

响应时间和并发数据在左边线位置达到优化目标,之后利用率60%提升非常缓慢,当超过右侧线是,系统性能急剧下降。

三、性能优化手段

1.空间换时间:当系统处理时间是瓶颈时使用。

例如:增加缓存,复用计算结果,降低时间开销,因为CPU的时间较内存容量而言更加昂贵。

2.时间换空间:当数据大小是瓶颈时使用。

例如:a.网络传输开启gzip压缩,b.页面根据版本号只下载更新数据

3.找到系统瓶颈:分析业务流程,找到关键路径,分解优化

例如:调用了多少RPC接口,载入多少数据,使用什么算法,非核心流程是否异步化,没有依赖逻辑是否并行化

四、性能优化层次

原则:从整体到细节,从全局视角到局部视角

1.架构设计层次优化:如何拆分系统;如何使各个部分负责更加均衡;充分发挥硬件性能优势;减少系统内部开销

a.系统微服务化

垂直拆分:网关层,业务逻辑层,数据访问层,判断实现需要加入MQ改造为异步化系统

水平拆分:先完成服务无状态化改造,进行水平扩展

b.调用链梳理,热点数据靠近用户

c.分布式cache,多级多类型缓存

d.提前拒绝,保证柔性可用

e.容量规划

f.分库分表,读写分离,数据分片

 

2.算法逻辑层次优化

a.关注算法是否高效,逻辑优化,空间时间优化,任务并行,无锁数据结构

b.空间换时间:ThreadLocal

c.时间换空间:采用压缩算法数据,增加逻辑计算,只传输结果减少数据传输

 

3.代码层次优化

a.代码实现逻辑是否合理

b.对象创建多少

c.循环是否高效

d.cache是否复用

e.是否重用计算结果

 

四、实战举例

朋友圈Feed系统

 

文章知识点与官方知识档案匹配,可进一步学习相关知识
云原生入门技能树首页概览10079 人正在系统学习中

与[转帖]架构修炼-10:高并发设计相似的内容:

[转帖]架构修炼-10:高并发设计

一、如何衡量高并发的系统性能 1.吞吐量Throughput: 2.响应延迟Response Delay: 二、性能优化目标 1.缩短响应时间 2.提高系统并发数(提升吞吐量) 3.系统处理合理状态(机器利用率) 随着系统压力增加(X坐标:在线业务人数), Y坐标:绿色机器利用率,紫色并发数,蓝色:

[转帖]Kafka-Kraft 模式架构部署

news文章来源: Kafka-Kraft 模式架构部署 Kafka网址:https://kafka.apache.org/ PS:因环境原因此文档内端口都有修改! 1.去官网下载二进制包 PS:3.4.0是目前最新的版本!需要jdk1.8及以上版本启动。 [root@k8s-node1 ~]# w

[转帖]龙芯3A5000评测 国产自主指令集架构实战

https://tieba.baidu.com/p/8297036384?pid=147031768904&cid=#147031768904 芯片,是世界一大难题,很多人难以想象电子硬件中最小巧的的元件反而拥有最高技术含量,其中蕴含的逻辑就相当于以纳米为单位修建一座城市。 芯片器件中最著名的产物是

【转帖】【漏洞提示】MySQL8.0.29因重大bug官网已下架

前阵子,MySQL官网已经将 MySQL 8.0.29版本下架。据悉下架原因是由于MySQL 8.0.29 存在关于InnoDB解释器的重大Bug。而最新版本 8.0.30及以上的版本已修复此漏洞。各大镜像站也已经移除了 8.0.29 的下载。大家可根据自身项目实际情况进行升级。如果是现有版本使用的

[转帖]架构真经

1 大道至简 1.1 规则1 避免过度设计 【内容】在设计中警惕复杂的解决方案 【应用场景】适用于任何项目,应用所有大型项目和复杂系统或项目设计过程中 【用法】通过测试同事是否轻松的理解解决方案,来验证是否存在过度设计 【原因】复杂的解决方案实时成本过高,而且长期维护费用昂贵 【要点】过于复杂的系统

[转帖]API架构风格对比:SOAP vs REST vs GraphQL vs RPC

https://www.cnblogs.com/charlieroro/p/14570214.html 最近一段时间关于GraphQL的讨论很多,一些项目中也相继用到了这种风格,但使用是否合理,是否存在杀鸡用牛刀这样的问题,还有待商榷。 译自:Comparing API Architectural

[转帖]CPU架构对redis的性能影响

https://www.cnblogs.com/dwtfukgv/p/15203960.html 目录 主流CPU架构 CPU多核对redis性能的影响 NUMA架构对redis性能的影响 绑核的风险和解决方案 绑核的风险 解决方案 作者:@dwtfukgv本文为作者原创,转载请注明出处:https

[转帖]CPU架构对redis的性能影响

目录 主流CPU架构 CPU多核对redis性能的影响 NUMA架构对redis性能的影响 绑核的风险和解决方案 绑核的风险 解决方案 作者:@dwtfukgv本文为作者原创,转载请注明出处:https://www.cnblogs.com/dwtfukgv/p/15203960.html CPU架构

[转帖]图解架构 | SaaS、PaaS、IaaS

http://blog.itpub.net/70024420/viewspace-2925243/ 上次聊到了架构图如何画,其中涉及到了云服务的架构图,里面提到了很重要的三个概念 PaaS、IaaS、SaaS,很有必要在这里总结一波。 架构图,so easy? 本文内容如下: 随着互联网行业的飞速发

[转帖]twemproxy架构分析——剖析twemproxy代码前编

https://www.cnblogs.com/wzj4858/p/15853846.html twemproxy背景 在业务量剧增的今天,单台高速缓存服务器已经无法满足业务的需求, 而相较于大容量SSD数据存储方案,缓存具备速度和成本优势,但也存在数据安全性的挑战。为此搭建一个高速缓存服务器集群来