今天读了《大型网站技术架构:核心原理与案例分析》的第二篇的第四章——瞬时响应:网站的高性能架构。本章开篇介绍了高性能网站的定义:网站性能是客观的指标,可以具体体现到响应时间、吞吐量等技术指标,同时也是主观的感受,而感受则是一种与具体参与者相关的微妙的东西,用户的感受和工程师的感受不同,不同的用户感受也不同。而对于网站的性能,也有相关的测试方法,性能测试是性能优化的前提和基础,也是性能优化结果的检查和度量标准。不同视角下的网站性能有不同的标准,也有不同的优化手段。在用户视角,网站性能就是用户在浏览器上直观感受到的网站响应速度快还是慢,用户感受到的时间,包括用户计算机和网站服务器通信的时间、网站服务器处理的时间、用户计算机浏览器构造请求解析相应数据的时间。在实践中,使用一些前端架构优化手段,通过优化页面HTML式样、利用浏览器端的并发和异步特性、调整浏览器缓存策略、使用CDN服务、反向代理等手段,使浏览器尽快地显示用户感兴趣的内容、尽可能近地获取页面内同,即使不优化应用程序和架构,也可以很大程度地改善用户视角下的网站性能。在开发人员视角下的网站性能,开发人员关注的主要是应用程序本身及其相关子系统的性能,包括相应延迟、系统吞吐量、并发处理能力、系统稳定性等技术指标。主要的优化手段有使用缓存加速数据读取,使用集群提高吞吐能力,使用异步消息加快请求响应及实现削风,使用代码优化手段 改善程序性能。运维人员更关注基础设施性能和资源利用率,如网络运营商的带宽能力、服务器硬件的配置、数据中心网络架构、服务器和网络宽带的资源利用率等。主要优化手段有建设优化骨干网、使用高性价比定制服务器、利用虚拟化技术优化资源利用率等。性能测试的指标有:相应时间、并发数、吞吐量、性能计数器。性能测试方法有:性能测试、负载测试、压力测试、稳定性测试。性能优化策略分为性能分析和性能优化两部分。Web前端性能优化有:浏览器访问优化、CDN加速、反向代理。应用服务器性能优化:分布式缓存、异步操作、使用集群、代码优化。存储性能优化有:机械硬盘 vs 固态硬盘、B+熟 vs LSM树、RAID vs HDFS。
网站性能对最终用户而言是一种主观感受,性能优化的最终目的就是改善用户的体验,使他们感觉网站很快。