全部产品
云市场

函数计算成本优化最佳实践

更新时间:2019-09-13 00:43:25

函数计算的计量模式

用户的应用负载通常具备多种类型,对资源的规格和弹性要求各不相同。函数计算提供了预付费和后付费计量模式,帮助您在不同场景下获得显著的成本优势。预付费是指用户先判断应用的资源需求,预先购买指定数量的资源消费券后再使用。预付费的优点是单价低,比后付费便宜 70% 左右;缺点是应用负载动态变化,按照峰值购买资源将导致较低的资源利用率。后付费是指用户根据应用实际使用的资源按需付费。函数计算按量资源是根据实例执行请求的时间付费,精确到百毫秒。如果没有请求,则无需付费。因此可以认为按量资源的利用率是 100%。后付费的优点是资源利用率高,缺点是单价高。函数计算的自动伸缩能够让您将预付费和后付费资源无缝结合起来,在不同场景下都能获得有竞争力的成本。

预付费和完全按需的计量模式

预付费资源额度被账户下同区域的所有函数共享,函数计算以秒为粒度聚合所有函数的实际消耗资源并用预付费额度进行抵扣。关于预付费和后付费计量模式的详细信息,请参阅 函数计算计费文档

函数计算的成本构成

在成本优化之前,首先需要了解成本的构成。能够细粒度的追踪资源使用情况才能有的放矢的进行成本优化。函数计算为您提供了函数、服务、账户级别的资源使用信息。结合函数计算的标签功能,您还可以为服务/函数资源打上多个标签,从不同维度审视成本的构成。比如您可以标注函数是生产还是测试资源,属于哪个应用程序,所有者是谁等等,方便对成本进行分类和跟踪。

标签查询示例

使用预付费优化成本

如上所述,函数计算提供了丰富的计量模式,多维度的指标帮助用户分析和优化成本。借助这些功能,您能够通过多种手段,提高资源利用率,降低成本。

优化1:根据应用特点选择合适的资源付费方式

首先请根据应用使用资源的方式,选择合适的付费方式。例如生产环境中,延时敏感的在线应用,通常需要预留一定数目的资源保证稳定的延时,这部分资源使用预付费的方式购买,能大幅降低成本。而测试、离线数据处理等任务更看重吞吐而非延时,要求大量任务能在限定的时间内完成,资源的使用通常是爆发式的、临时的,因此使用后付费的方式,根据实际使用的资源按需付费更合理,能保持很高的资源利用率,降低成本。如下图所示,在函数计算控制台上,您能够一目了然地看到当前账户下的资源实际使用情况,包括资源使用中稳定和弹性的部分。这些信息能大幅简化用户做资源预估的难度,帮助您合理分配预付费和后付费资源。

账户级别的资源使用情况

优化2:消除闲置的预留资源

函数计算提供了细粒度,多维度的资源使用信息。您能够查看每个函数的预留和实际资源使用情况,及时释放闲置的预留资源,降低成本。借助标签功能,您可以查看指定类别的函数资源使用情况。例如列出所有测试类的函数,查看是否有闲置的资源。例如下图显示函数长期没有调用,应释放闲置的预留实例。

函数级别的资源使用情况

优化3:削峰填谷,减小应用突发式的资源使用

当应用在短时间内累积了大量待处理的请求,但处理的时间要求相对宽松时,您可以使用函数计算的异步调用接口,并限制函数的最大并发实例数,将突发式的资源需求平滑掉。如下图所示,平缓的资源使用更易于被较低单价的预付费资源覆盖,从而显著减低成本。函数计算系统内部会将请求缓存在队列里,根据用户设置的函数资源限制以匹配的速度处理请求,并做好负载均衡和隔离,避免不同函数之间的互相影响。您只需要为函数设置合理的最大并发实例数就行了!

削峰填谷,优化资源使用

优化4:调整应用运行时机,错峰使用资源

有一类函数运行时间有一定弹性,例如日常回归测试任务,只需要在当晚21点前和第二天上午9点之前完成就行,那么这类函数可以灵活调整运行时间,和其他函数错峰运行。通过函数计算的定时触发器,您可以轻松调整任务的触发时机,让资源的使用更加平缓,从而使用更低单价的预付费资源覆盖这部分资源需求。

错峰使用资源

总结

函数计算提供了丰富的计量模式,有竞争力的定价,以及详细的资源使用指标,结合 Serverless 以应用为中心的架构,让您的资源管理前所未有的便捷,在不同场景下都能获得极具竞争力成本。