性能优化的目标实际上是为了更好的用户体验:
一般我们认为用户体验是下面的公式:
用户体验 = 产品设计(非技术)+ 系统性能 ≈ 系统性能 = 快
那什么样的体验叫快呢?
一般我们认为网站页面的加载速度在3秒以内就可以称作合格了,加载速度越趋近于0,越快。
3秒定理:Strangeloop在对比了众多网站,并对其性能进行分析之后得出了一个著名的3秒定理,当网站页面加载速度超过3秒后,57%的访客会离开这个网站。
如果想让我们的系统快起来,就要做性能调优。
以下可以做为优化的标准:
我们怎么去分析性能因素呢,就是既不要去做过度的优化,也不要让某个内容作为短板。
我们怎么找到系统的短板在哪里呢?就是需要进行压力测试。
压力测试:压力测试是针对特定系统或者组件,为要确认其稳定性而特意进行的严格测试。会让系统在超过正常使用条件下运作,然后再确认其结果。
实际上就是对系统不断施加压力,来预估系统负载能力的一种测试。
一般而言,只要在系统基础功能验证完成、系统趋于稳定的情况下,才会进行压力测试。
| 指标 | 含义 |
|---|---|
| 响应时间(RT) | 是指系统对请求作出响应的平均时间,对于单用户系统,响应时间可以很好地度量系统的性能。 |
| 吞吐量(Throughput) | 是指系统在单位时间内处理请求的数量,每秒事务数TPS也算是吞吐量的一种 |
| 资源利用率 | CPU占用率、内存使用率、系统负载、网络I/O |
| 并发用户数 | 是指系统可以同时承载的正常使用系统功能的用户的数量,用户不同的使用模式会导致不同用户在单位时间发出不同数量的请求。 |
| 错误率 | 失败请求占比,在测试时添加响应断言,验证不通过记为错误;若不添加,响应码为非200即为错误。 |
响应时间、并发用户数、吞吐量、资源使用率存在一定关系,如下图:

图的解释:
绿线:随着用户增长,资源利用率会提升;
紫线:随着用户增长,吞吐量会上升,然后下降;
蓝线:随着用户增长,响应时间的变化趋势;
图中有三个区域:轻负载区、重负载区、塌陷区。
第一条虚线的横坐标:最优并发用户数;
第二条虚线的横坐标:最大并发用户数。