何为高性能网站:
简单点概述就是:客户端发起请求到看到响应数据够快,最好是瞬时响应,这就是高性能。路漫漫其修远兮,吾将上下而求索!

1. 网站高性能指标

1.1 响应时间

发出请求到收到响应所需要的时间(多次(如:一万次)请求的平均时间)。代表着系统的快慢。

1.2 并发数

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

网站系统注册用户数 > 网站在线用户数 > 网站并发用户数

1.3 吞吐量

指单位时间内系统处理的请求数量,体现系统的整体处理能力。

衡量表达式:

  • 请求数/秒
  • 页面数/秒
  • 处理的业务数/小时

量化指标:

  • TPS(每秒事务数)
  • HPS(每秒HTTP请求数)
  • QPS(每秒查询数)

1.4 性能计数器

描述服务器或操作系统性能的一些数据指标。

包括(下面部分):

  • System Load(系统负载)
  • 对象与线程数
  • 内存使用
  • CPU使用
  • 磁盘与网络I/O

这些指标也是做系统监控的指标。

2. 性能测试

以系统设计初期规划的性能指标为预期目标,对系统不断施加压力,验证系统在资源可接受范围内,是否能达到性能预期。

2.1 测试方法:

  • 负载测试
  • 压力测试
  • 稳定性测试

2.2 测试报告

看下面简单示例:

并发数 响应时间(ms) TPS 错误率(%) Load(负载) 内存(GB) 备注
10 500 20 0 5 8 性能测试
20 800 30 0 10 10 性能测试
30 1000 40 2 15 14 性能测试
40 1200 45 20 30 16 负载测试
60 2000 30 40 50 16 压力测试
80 超时 0 100 不详 不详 压力测试

3. 性能优化策略

系统性能测试达不到预期,则需要找出系统瓶颈,分而治之,逐步优化。

3.1 性能分析

检查请求处理的各个环节的日志,分析哪个环节响应时间不合理,超过预期;然后检查监控数据,分析影响性能的主要因素是内存、磁盘、网络、还是cpu,是代码问题还是架构不合理,或者是系统资源确实不够用了。

3.2 性能优化方法

通常情况下,web系统可分为前端性能优化、应用服务器性能优化、存储服务器性能优化三大类。

4. Web前端性能优化

4.1浏览器访问优化

  1. 减少页面请求数量

主要手段是合并CSS、合并js,合并图片。讲浏览器一次访问需要的js、css资源合并成一个文件。多张图片也可以合并。一个页面,服务端也尽可能在一次性请求中返回全部数据,以减少多次请求获取数据。

  1. 使用浏览器缓存

缓存静态资源js、css、图片。通过设置HTTP头Cache-Control和Expires属性。

  1. 启用压缩

服务端对文件压缩返回,浏览器解压,有效减少通信传输的数据量。

  1. CSS放在页面最上面、js放在页面最下面

浏览器回下载完所有css才对整个页面渲染。浏览器下载完js回马上执行,可能阻塞页面,造成页面缓慢,所以放在下面。但是在界面解析时就要用到的js则放在上面。

  1. 减少Cookie传输
    每次请求都包含Cookie,所以Cookie数据量大的话必然会影响传输速度。因此,要慎重使用,必要的才保存。

4.2 CND加速

4.3 反向代理

5.