优化内容驱动型 Web 应用的后端性能

对于任何类型的扩缩,请考虑应用的架构以及可以进行哪些优化。例如,静态内容应由经过优化的内容分发网络传送,能够提供价格和性能优势。为数据存储后端额外缓存也有可能提高性能,并最大限度地减少对代价高昂的扩缩的要求。

性能测试和基准

基准化分析和性能测试可以识别开发过程中的潜在性能瓶颈,帮助跟踪一段时间内的趋势,并通过比较架构、技术栈、云服务商或其他选项来支持决策。

负载测试使用预定的受控类型的负载、流量或数据,来衡量后端针对目标的性能。您可以了解各种负载水平对应用性能的影响。

可伸缩性测试侧重于分析应用的扩容和横向扩容能力。可伸缩性测试会显示应用如何响应增加的负载以及后端(包括数据存储)的调整方式。

在开始对应用进行基准测试之前,定义明确的目标,包括性能和速度(例如延迟时间、吞吐量、速度)、资源利用率(CPU 利用率、内存用量、后端组件之间的网络流量)和费用。考虑扩缩方面的任何延迟;例如,当流量激增或流量激增时,应用扩容时需要超出指定的一组“预留”资源。

许多工具可用于基准化分析和性能测试,例如 Apache JMeterLocust。选择测试工具时,请考虑可用的测试类型,包括您是否需要支持脚本、用于调试的 IDE 集成、其他插件,或者是否支持要测试的流量类型和规模。

如果使用云服务商,请确定是否存在任何负载测试的额外要求或最佳实践,以避免潜在的限制。例如,请考虑 Cloud Run 的最佳实践。

费用和性能注意事项

虽然纵向扩容对于提升性能至关重要,但为了最大限度地降低费用,纵向扩容也是一个考虑因素。考虑无任何请求的后端应用的基准费用以及应用纵向扩容所涉及的费用。

无论利用率如何,本地或基于服务器的架构可能都有固定的费用。某些云环境允许您“缩减至零”以避免未发出请求时产生的费用。云服务提供商提供计算器,可用于探索不同的配置和价格策略,例如资源的预承诺。