问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

低成本提升网站速度:四种简单易行的网络优化方案

创作时间:
2025-01-21 23:46:11
作者:
@小白创作中心

低成本提升网站速度:四种简单易行的网络优化方案

本文发布于2024年5月,介绍了几种低成本、易落地的网络加速方案。虽然文章内容详实,但考虑到技术的快速发展,读者在参考时需评估方案的时效性和适用性。

作为相对成熟的互联网公司,webp、CDN等都是公司搞过的网络加速方案了。此时要做整体的全面提速,一般需要运维层面优化,成本很高,哪怕平均耗时减少5ms,可能耗资都在百万甚至千万了。那还有可能找到一个相对理想的提速方案么?

方案特点

  • 不增加硬件成本和运营成本
  • 较少的人力成本
  • 较强的通用性
  • 较低的改造门槛
  • 较大的性能提升

以下是一些已经落地实践过的方案:

如何衡量

  • 在前端采集性能数据,而不是后端。后端10ms的接口,前端感知到的耗时可能是3s
  • 看的是项目整体的网络耗时,而不是单个接口的耗时。整体耗时包括一切网络请求。
  • 微信小程序等平台已经自带了统计。例如:

TLS1.2升级为TLS1.3

技术原理

  • TLS1.2握手2-RTT或1-RTT
  • TLS1.3握手1-RTT或0-RTT
    TLS1.3减少了握手时间,线上为了安全,一般不会启用0-RTT。

改造方式

买入的TLS证书,一般是同时支持TLS1.2+TLS1.3的。
TLS证书在nginx统一做的,因此,运维调整即可支持。

效果

约降低几ms

CDN设置浏览器缓存

技术原理

浏览器缓存,是指浏览器本地缓存了已请求成功过的服务器文件,在下次加载文件时,根据缓存策略从浏览器本地缓存中读取或者从服务器读取。可参考此文:浏览器缓存和CDN
公司用的文件服务是亚马逊的S3服务,使用了CDN
由于S3和CDN的浏览器缓存都没有启用,因此,即使走了CDN,图片的二次加载仍然要走网络,有一定耗时。
优化前后:

改造方式

设置CDN的30天强制浏览器强缓存(注意和S3服务中的Etag、Last-Modified区分,是浏览器缓存的不同实现方式。强制浏览器缓存在到期前完全不走网络)。

  • 缺点:文件/图片地址不变,更换文件/图片内容,会导致客户端无法获取到最新的图片
  • 优点:网络耗时立马下降,且实现简单
  • 使用注意:业务上,确保更换文件/图片内容时,每次都生成新的文件/图片地址。

效果

约降低10~40ms, 有明显效果。
这是优化后的微信小程序的统计,明显下降:

后端接口的响应体压缩

技术原理

对满足条件和数据大小阈值的响应,进行gzip压缩,减少流量和发送时延。

改造方式

方式一:业务方自己做。例如:spring响应压缩
方式二:运维层面做。例如:nginx对指定接口做响应压缩

效果

约降低10~30ms, 有明显效果

前端埋点非实时上传

技术原理

前端埋点实时上传或者伪实时上传,一旦埋点多了,会造成队头阻塞导致超时,会抢占带宽导致请求缓慢。 在微信统计平台上,可以看到埋点的接口调用数量,例如:

改造方式

前端埋点放入队列,达到阈值再上传。允许少量丢失。

效果

视埋点数量而定,埋点越多效果越明显

总结

方案
改造方式
效果
TLS1.3
运维支持TLS1.3
约降低几ms,无明显效果
浏览器缓存
CDN支持或者文件存储服务支持
约降低10~40ms,有明显效果
响应压缩
运维支持或者业务自己做
约降低10~30ms,有明显效果
埋点非实时上传
前端改造
视埋点数量而定,埋点越多效果越明显
  • 方案评估
  1. 不增加硬件成本和运营成本。 只有一次性的软件开发成本
  2. 较少的人力成本。 方案开发,每个项目最快2天即可完成上线
  3. 较强的通用性。 方案适用于公司的所有微信小程序
  4. 较低的改造门槛。 修改简单,门槛低
  5. 较大的性能提升。 整体网络耗时下降几十ms
  • 提速方法论
    浏览器缓存和降低发送时延,是网络提速的捷径

本文原文来自掘金

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号