文章目录

  • 一、性能
  • 二、性能在计算机世界的两个方面表现
  • 三、软件系统高性能复杂度两个方面
    • 1)单机复杂度
    • 2)集群复杂度
      • (1)任务分配
      • (2)任务分解
  • 四、应对高并发挑战的两个技术方向
    • 1、垂直伸缩
      • (1)垂直伸缩的定义
      • (2)垂直伸缩的解决方案
      • (3)垂直伸缩的缺点
    • 2、水平伸缩
      • (1)水平伸缩的定义
      • (2)水平伸缩的缺点
    • 3、水平伸缩与垂直伸缩比较

一、性能

性能,简而言之,就是速度

二、性能在计算机世界的两个方面表现

  • (1)计算机硬件
  • (2)计算机软件

三、软件系统高性能复杂度两个方面

1)单机复杂度

单机复杂度,就是单台计算机内部为了高性能带来的复杂度

计算机内部复杂度最关键的地方就是操作系统

操作系统和性能最相关的就是进程和线程

操作系统调度的最小单位就变成了线程,而进程变成了操作系统分配资源的最小单位

2)集群复杂度

集群复杂度,就是多台计算机集群为了高性能带来的复杂度

复杂业务的快速发展,单机性能是无法支撑的,需要采用机器集群的方式实现高性能

(1)任务分配

任务分配,指每台机器都可以处理完整的业务任务,不同的任务分配到不同的机器上执行

在性能计算上,实际情况通常是理论值的八折

(2)任务分解

业务越来越复杂,单台机器处理的性能会越来越低,采用“任务分解”,提升性能

四、应对高并发挑战的两个技术方向

互联网下的架构,最大的挑战就是高并发,其他的挑战往往是由高并发引起

高并发,即大量用户同时访问系统,系统面临大量的请求,系统需要同时针对用户请求进行处理,为每个用户创立线程,线程需要消耗CPU资源,占据一定的内存,消耗磁盘访问,消耗网络带宽空间,那么,如何处理并发访问的用户请求,为各个用户分配资源进行请求处理

1、垂直伸缩

(1)垂直伸缩的定义

垂直伸缩,并发量大量增加时,更多的用户请求,当前系统计算机资源不足,“增强单一服务器的功能”,“增强单一服务的计算能力”,原来100并发量,现在500,可以增强CPU、内存、磁盘、服务器等硬件条件

(2)垂直伸缩的解决方案

通过“升级硬件”和“网络吞吐能力”可以实现垂直伸缩,不需要改变应用架构,直接通过升级硬件和网络吞吐能力实现垂直伸缩

• 通过使用 RAID(独立冗余磁盘阵列)增加 I/O 吞吐能力
• 通过切换到 SSD(固态硬盘)改善 I/O 访问速度
• 通过增加内存减少 I/O 操作
• 通过升级网络接口或者增加网络接口提高网络吞吐能力
• 更新服务器使用更多处理器或者更多超线程

(3)垂直伸缩的缺点

垂直伸缩符合“饱和曲线”,最后的成本代价很大,但是提升的效果不明显,业务赚取的利润都用来购买升级硬件,就得不偿失了

• 达到某个程度后,增加计算能力需要的更多的花费
• 垂直伸缩有物理极限
• 操作系统的设计或者应用程序自身制约着垂直伸缩最多只能达到某个点

通常不需要使用垂直伸缩,当水平伸缩无法解决问题或者极其有钱的情况下,则可以采用垂直伸缩

2、水平伸缩

(1)水平伸缩的定义

水平伸缩,通过“增加服务器”提升计算能力的架构方法,就是增加同类服务器的数量,构成服务器集群,共同对外提供服务,也就是分布式系统架构

水平伸缩是当前互联网主要采用的方式,基于互联网渐进式特点,水平伸缩则是近似线性特点

(2)水平伸缩的缺点

虽然水平伸缩可以解决垂直伸缩的饱和曲线问题,但是,随着水平伸缩的不断扩展,也会带来系统的复杂性问题,也就是系统之间的交互复杂度,系统越多,交互耗损的时间越大

3、水平伸缩与垂直伸缩比较

通过一幅图即可了解两者之间的差别,可以跳转到有道云笔记查看


参考

《从 0 开始学架构》04 | 复杂度来源:高性能

【从 0 开始学架构】学习笔记 Day5 高性能基本概念相关推荐

  1. 从0开始学架构(三)

    此系列文章为极客时间上从0开始学架构学习后感悟总结,虽然隔了一段时间了,那么就再看一遍并且进行感悟升华,排版格式上有问题,后期再复习时也会进行更新   一.CAP理论 CAP 定理(CAP theor ...

  2. 从0开始学架构(四)

    此系列文章为极客时间上从0开始学架构学习后感悟总结,虽然隔了一段时间了,那么就再看一遍并且进行感悟升华,排版格式上有问题,后期再复习时也会进行更新   一. 可扩展架构的基本思想和模式 可扩展性架构的 ...

  3. 【从 0 开始学架构】学习笔记 Day4 “4+1”视图模型

    文章目录 一.模型 (1)模型 (2)软件开发的本质 (3)架构设计 二.4+1视图模型 1)定义 2)组成 (1)场景视图 (2)逻辑视图 (3)开发视图 (4)物理视图 (5)过程视图 三.UML ...

  4. 动手学深度学习笔记3.4+3.5+3.6+3.7

    系列文章目录 动手学深度学习笔记系列: 动手学深度学习笔记3.1+3.2+3.3 文章目录 系列文章目录 前言 一.softmax回归 1.1 分类问题 1.2 网络架构 1.3 全连接层的参数开销 ...

  5. 影像组学视频学习笔记(43)-标准差、标准误及95%置信区间CI、Li‘s have a solution and plan.

    作者:北欧森林 链接:https://www.jianshu.com/p/f09d0f97592f 来源:简书,已获授权转载 本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(43)主要 ...

  6. 影像组学视频学习笔记(42)-影像组学特征提取问题解决过程复现、Li‘s have a solution and plan.

    作者:北欧森林 链接:https://www.jianshu.com/p/c3e6de2f79b3 来源:简书,已获转载授权 本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(42)主要 ...

  7. 影像组学视频学习笔记(41)-如何使用软件提取组学特征、Li‘s have a solution and plan.

    作者:北欧森林 链接:https://www.jianshu.com/p/72186eb3e395 来源:简书,已获授权转载 本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(41)主要 ...

  8. 影像组学视频学习笔记(37)-机器学习模型判断脑卒中发病时间(文献报告)、Li‘s have a solution and plan.

    作者:北欧森林 链接:https://www.jianshu.com/p/3e7a2c84288e 来源:简书,已获授权转载 RadiomicsWorld.com "影像组学世界" ...

  9. 影像组学视频学习笔记(23)-主成分析PCA、降维和特征筛选的区别、Li‘s have a solution and plan.

    本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(23)主要讲解: 主成分析PCA,影像组学降维和特征筛选的区别 0. PCA(Principal component analysis) ...

最新文章

  1. 汇编:SF符号标志位
  2. sql-server基础三(select 、update、insert,delete)
  3. [BUUCTF-pwn]——bjdctf_2020_babyrop
  4. JavaFX图表(六)之条形图
  5. 弱口令扫描工具mysql ftp_基于端口的弱口令检测工具--iscan
  6. LeetCode 294. 翻转游戏 II(记忆化递归)
  7. mysql映射mapper_Mybatis中Mapper映射文件使用详解
  8. DOM中对表格的操作
  9. TableviewController基础
  10. Linux基础命令及其常识
  11. 【多目标优化求解】基于matlab蜻蜓算法求解多目标优化问题【含Matlab源码 477期】
  12. 数学建模方法-多项式拟合
  13. 【已解决】戴尔笔记本电脑的卡顿问题.
  14. NOI2022 题解
  15. mac环境变量配置文件加载优先级
  16. 【2021版】吐血整理_专升本计算机文化基础—Excel2010
  17. USTC English Club Note20211227
  18. dva的用法_使用 dva 构建小型前端项目 (一)
  19. Python算法- 剪绳子
  20. 乌克兰启动国家政策使加密货币合法化

热门文章

  1. 使用OPENCV进行人体识别
  2. IP查询地理位置 离线版 非第三方接口 根据IP查地理位置 springboot + MaxMind GeoIP2
  3. 南京航空航天大学计算机考研资料汇总
  4. 极光尔沃A3s切片软件JGcreater使用心得
  5. 北京唱吧 服务端开发岗位 面经 2019.10.29(秋招)
  6. sip事务、对话、会话
  7. 查找字段的筛选-使用addCustomView
  8. 【题目49:装快递(C++) ; ps:输入一行数据(带逗号或空格)更好的输入方式】
  9. Scratch(五十四):教师节快乐
  10. 连载丨《极简设计:苹果崛起之道》——硅谷伊甸园(一)