网站的高性能
何为高性能网站:
简单点概述就是:客户端发起请求到看到响应数据够快,最好是瞬时响应,这就是高性能。路漫漫其修远兮,吾将上下而求索!
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浏览器访问优化
- 减少页面请求数量
主要手段是合并CSS、合并js,合并图片。讲浏览器一次访问需要的js、css资源合并成一个文件。多张图片也可以合并。一个页面,服务端也尽可能在一次性请求中返回全部数据,以减少多次请求获取数据。
- 使用浏览器缓存
缓存静态资源js、css、图片。通过设置HTTP头Cache-Control和Expires属性。
- 启用压缩
服务端对文件压缩返回,浏览器解压,有效减少通信传输的数据量。
- CSS放在页面最上面、js放在页面最下面
浏览器回下载完所有css才对整个页面渲染。浏览器下载完js回马上执行,可能阻塞页面,造成页面缓慢,所以放在下面。但是在界面解析时就要用到的js则放在上面。
- 减少Cookie传输
每次请求都包含Cookie,所以Cookie数据量大的话必然会影响传输速度。因此,要慎重使用,必要的才保存。