首页 > 代码库 > 架构要素-高性能
架构要素-高性能
高性能-瞬时响应
不同视角下的网站性能:
1 用户视角的网站性能
用户在浏览器上直接感受的快慢。包括用户计算机和服务器的通信时间,服务器处理的时间;浏览器构造请求和解析响应数据的时间。
前端优化手段:优化页面Html式样,压缩资源(js,css,html等);利用浏览器段的并发和异步特性;调整浏览器缓存策略;使用CDN服务,反向代理等手段。
2 开发人员视角
性能指标:响应延迟,系统吞吐量,并发处理能力,系统稳定性等。
主要手段: 使用缓存加速读取,使用集群提高吞吐量,使用异步加快请求响应及实现消峰;使用代码优化改善程序性能。
3 运维人员视角
关注基础设施性能和资源利用率。
主要手段:建设骨干网,使用高性价比定制服务器,利用虚拟化技术优化资源利用;考虑使用弹性的云服务(云计算)。
4 性能测试指标
响应时间;并发数;吞吐量;性能计数器。
响应时间:指单位时间内系统处理的请求数量,体现系统的整体处理能力。请求数/秒,页面数/秒, 访问人数/天,处理的业务数/小时等来衡量。 Tps, hps(每秒http请求数),qpS每秒查询数。
性能计数器:记录包括system load, 对象与线程数,内存使用,cpu使用,磁盘与网络I/O等指标。
system load即系统负载,指当前正在被cpu执行和等待cpu执行的进程数目总和,是反映系统忙闲程度的重要指标。理想值是cpu的数目。
具体细分为:性能测试,负载测试(测试系统的最大负载点),压力测试(测试系统的崩溃点),稳定性测试。
l 性能分析后优化:
根据网站分层架构,可分为
ü web前端优化:浏览器访问优化(减少http请求,使用浏览器缓存,启用压缩,css放上面,js放页面最下面,减少cookie传输);CDN加速(网络访问第一跳);反向代理等
ü 应用服务器性能优化:分布式缓存(作用:减少数据访问时间,减少计算时间。注意缓存预热使用及防止缓存穿透);异步操作(良好的消峰作用);使用集群;代码优化(多线程,资源复用,数据结构,垃圾回收)。
远程通信设计需要考虑两方面的要素,一是通信协议,一是序列化协议(如xml,soap,json等文本协议, 或者一些二进制协议)
ü 存储服务器性能优化:固态硬盘,分布式文件系统hdfs, lsm数等。
最后, 用户体验的快或慢,可以通过技术手段改善,也可以通过优化交互体验改善。