大型网站核心架构要素之性能
在讲架构要素之前,我们首先要了解什么是架构,简单来说,架构就是“最高层次的规划,难以改变的决定”,架构决定了未来的方向和最终的成果。而对于软件架构来说,则是“有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计”。
对于软件架构,需要关注性能、可用性、伸缩性、扩展性和安全性5个方面。下面简单介绍一下网站的高性能架构。
什么是网站性能,网站性能是一种客观指标,可以具体到响应时间、吞吐量等一系列技术指标,同时也是主观的感受,而每个人的感受都不可能是相同的。
从用户角度,网站性能就是用户在浏览器上直观感受到的网站响应速度是快还是慢。用户感受到的时间,包括用户计算机和网站服务器通信的时间、网站服务器处理的时间、用户计算机浏览器构造请求解析响应数据的时间。
从开发者角度,开发人员主要关注的是应用程序本身及相关子系统的性能,包括响应延迟、系统吞吐量、并发处理能力、系统稳定性等技术指标。可以使用缓存加速数据读取、使用集群提供吞吐能力、使用异步消息加快请求响应及实现削峰、使用代码优化手段改善程序性能。
从运维人员角度,运维人员主要关注基础设施性能和资源利用率。
所以我们在进行性能测试时,不同视角下的网站性能有不同的测试标准,也有不同的优化手段。网站性能测试的主要指标有响应时间、并发数、吞吐量、性能计数器等,性能测试方法分为性能测试、负载测试、压力测试、稳定性测试。如果性能测试不能满足设计或业务需求,那么只能根据网站分层架构,进行Web前端性能优化、应用服务器性能优化、存储服务器性能优化。