
背景介绍
Cloud Native
全托管的 Serverless 计算平台能给用户带来更少的运维代价、更强的稳定性和更快的弹性能力。

评估 Serverless 服务最佳配置的难点
Cloud Native
用户使用 Serverless 服务的预期是:更低的成本、更快的弹性、更优的性能、更稳定的环境,这同时也是 Serverless 平台承诺提供给用户的能力。尽管如此,很多用户在使用过程中还是出现了各种问题:
为什么使用 Serverless 后发现成本还变高了?
为什么使用 Serverless 的冷启动时间那么长?
在 Serverless 平台上的性能延迟表现为什么更差了?
Serverless 平台能提供一定的基础能力,但是针对不同的业务逻辑,需要采取合适的配置才能更好的发挥 Serverless 的效果。但是如何评估某函数的最佳配置,其中涉及到多变量的协同优化问题,并不是一个简单的问题。具有以下几个难点。
难点1:成本和性能的权衡
一定的单实例多并发数,可以提高单实例并行处理请求的数量,减少实例数,从而降低成本;
并发数过高时,会增加资源竞争,导致性能延迟增加,从而增加成本; 较低的实例规格单价成本更低,但是延时更大;较高的实例规格单价成更高,但是延时可能更低
如何针对用户的偏好场景(性能优先还是成本优先),为用户推荐最佳的函数配置,成为首先需要考虑的一大难点。
难点2:不同函数业务逻辑的复杂度
对于 CPU 密集型的函数,规格增加对单实例性能的提升有较大的改善 对于 IO 密集型的函数,规格增加对单实例性能的提升存在边际效应递减的情况,当超过某规格后,规格的提升对性能提升的效果基本没有
比如下图展示了 CPU 密集型函数在不同规格下的压测数据:


难点3: 函数配置对平台侧资源的影响
较低的单实例并发度,函数流量波动变化的场景,会提前达到单实例并发上限,导致实例扩缩容频繁,对用户体感来说的冷启动更频繁,对平台来说需要创建和维护更多的实例个数,整体的资源利用率偏低 最大实例数的配置,如何保证实例资源的刚性交付
如何评估 Serverless 服务的最佳配置
Cloud Native
青铜用户:拍脑袋设置
白银用户:人工反复调整
王者:性能探测+数据分析的自动化推荐

吞吐量-并发数:随着并发数上升,吞吐量先上升后平缓,可能出现下降,即性能恶化; 延迟-并发数:当并发度过高时,延迟会变高,甚至会急剧恶化;
通过性能探测,我们会得到每种规格的关键性能数据:
每个规格的最高能承受的 QPS:基于此,用户如果对业务流量比较清楚,可以计算得到函数所需的最小实例数和最大实例数。 推荐的最佳规格和规格下的最佳并发度。
比如用户预期自己的函数调用端到端延迟是 1000 毫秒,那么我们会根据 1000 毫秒的延迟限制,推荐出最佳的规格,以及该规格下的最佳并发度,即满足延迟限制的最高 QPS 时对应的并发度。




至尊王者:智能动态调整并发度
总结与展望
Cloud Native
目前性能探测功能已经在函数计算控制台开放,基于历史流量评估能够降低成本的最佳配置也会在近期公测开放。基于性能探测的自动化推荐函数配置功能,极大降低了用户上手以及运维函数配置的复杂度,期望能给用户使用 Serverless 带来王者般的体验。
[1] 函数性能探测
https://help.aliyun.com/document_detail/477504.html
[2] 参考《Little's Law Wikipedia RobustScaler: QoS-Aware Autoscaling for Complex Workloads》
点击阅读原文查看函数计算 FC 产品官网




