《大型网站技术架构设计》第二篇 架构-性能

不同视角下的网站性能

1、用户

从用户角度,网站性能就是用户在浏览器上直观感受到的网站响应速度快还是慢 。用户感受到的时间

2、开发人员

开发人员关注的主要是应用程序本身及其相关子系统的性能,包括响应延迟、系统吞吐量、并发处理能力、系统稳定性等技术指标。

3、运维人员

运维人员更关注基础设施性能和资源利用率,如:

  1. 网络运营商(移动、联通、电信)的带宽能力;
  2. 服务器硬件的配置;
  3. 数据中心网络架构;
  4. 服务器和网络带宽的资源利用率等。

主要优化手段有建设优化骨干网、使用高性价比定制服务器、利用虚拟化技术优化资源利用等。

性能衡量标准

1.响应时间

指应用执行一个操作需要的时间,包括从发出请求开始到收到最后响应数据所需要的时间。响应时间是系统最重要的性能指标 ,直观地反映了系统的"快慢"

2.并发数量

指系统能够同时处理 请求的数目,这个数字也反映了系统的负载特性。对于网站而言,并发数即网站并发用户数,指同时提交请求的用户数目。

在网站产品设计初期,产品经理和运营人员就需要规划不同发展阶段的网站系统用户数,并以此为基础,根据产品特性和运营手段,推算在线用户数和并发用户数。这些指标将成为系统非功能设计的重要依据。

3.吞吐量

(1)什么是吞吐量

单位时间 内系统处理的请求数量 ,体现系统的整体处理能力。对于网站,可以用"请求数/秒"或是"页面数/秒"来衡量,也可以用"访问人数/天"或是 "处理的业务数小时"等来衡量。TPS (每秒事务数)是吞吐量的一个常用量化指标,此外还有 HPS (每秒 HTTP 请求数)、 QPS (每秒查询数)等

(2)系统吞吐量、系统并发数、系统响应时间的关系

系统吞吐量和系统并发数,以及响应时间的关系可以形象地理解为高速公路的通行状况:

  1. 吞吐量是每天通过收费站的车辆数目(可以换算成收费站收取的高速费),
  2. 并发数是高速公路上的正在行驶的车辆数目,
  3. 响应时间是车速。

过程如下:

  1. 车辆很少时,车速很快,但是收到的高速费也相应较少;(并发请求少时,响应时间短,吞吐量低)
  2. 随着高速公路上车辆数目的增多,车速略受影响,但是收到的高速费增加很快;(并发稍多,吞吐量增加)
  3. 随着车辆的继续增加,车速变得越来越慢,高速公路越来越堵,收费不增反降;(并发较多,RT变长,吞吐量下降)
  4. 如果车流量继续增加,超过某个极限后,任何偶然因素都会导致高速全部瘫痪,车走不动,费当然也收不着,而高速公路成了停车场(资源耗尽)。

(3)网站性能优化的目的

网站性能优化的目的,除了改善用户体验的响应时间 ,还要尽量提高系统吞吐量最大限度利用服务器资源

4.性能计数器

(1)什么是性能计数器

它是描述服务器操作系统 性能的一些数据指标。包括 System Load、对象与线程数、内存使用、CPU 使用、磁盘与网络 VO 等指标 。这些指标也是系统监控的重要参数,对这些指标设置报警阈值,当监控系统发现性能计数器超过國值时,就向运维和开发人员报警,及时发现处理系统异常。

(2)什么是系统负载

System Load 即系统负载,指当前正在被 CPU 执行和等待被 CPU 执行的进程数目总和,是反映系统忙闲程度的重要指标。

  1. 多核 CPU 的情况下,完美情况是所有 CPU 都在使用,没有进程在等待处理,所以 Load 的理想值是 CPU 的数目。
  2. 当 Load 值低于 CPU 数目的时候,表示 CPU 有空闲,资源存在浪费;
  3. 当 Load 值高于 CPU 数目的时候,表示进程在排队等待 CPU 调度,表示系统资源不足,影响应用程序的执行性能。

在 Linux 系统中使用 top 命令查看,该值是三个浮点数,表示最近1分铀15分钟的运行队列平均进程数。如图4.2 所示。

性能优化手段

从用户请求的经过路线方向,考虑性能如何优化。

相关推荐
车载诊断技术1 小时前
电子电气架构 --- 什么是EPS?
网络·人工智能·安全·架构·汽车·需求分析
武子康1 小时前
大数据-258 离线数仓 - Griffin架构 配置安装 Livy 架构设计 解压配置 Hadoop Hive
java·大数据·数据仓库·hive·hadoop·架构
9527华安7 小时前
FPGA多路MIPI转FPD-Link视频缩放拼接显示,基于IMX327+FPD953架构,提供2套工程源码和技术支持
fpga开发·架构·音视频
三桥彭于晏13 小时前
B/S 跟C/S架构的区别
架构
小蜗牛慢慢爬行17 小时前
如何在 Spring Boot 微服务中设置和管理多个数据库
java·数据库·spring boot·后端·微服务·架构·hibernate
小扳19 小时前
微服务篇-深入了解 MinIO 文件服务器(你还在使用阿里云 0SS 对象存储图片服务?教你使用 MinIO 文件服务器:实现从部署到具体使用)
java·服务器·分布式·微服务·云原生·架构
盛派网络小助手1 天前
微信 SDK 更新 Sample,NCF 文档和模板更新,更多更新日志,欢迎解锁
开发语言·人工智能·后端·架构·c#
快乐非自愿1 天前
分布式系统架构2:服务发现
架构·服务发现
2401_854391081 天前
SSM 架构中 JAVA 网络直播带货查询系统设计与 JSP 有效实现方法
java·开发语言·架构
264玫瑰资源库1 天前
从零开始C++棋牌游戏开发之第二篇:初识 C++ 游戏开发的基本架构
开发语言·c++·架构