在我开始之前,我会说我不是 100% 确定 SO 是否适合这个问题的 SX。让我知道我是否应该在其他 SX 上问这个问题。
问题一般是关于 FaaS 的,但如果您可以在特定 FaaS 平台/提供商的上下文中更好地解释这一点,那也很好。
我目前正在阅读无服务器计算(更具体地说是 FaaS),并试图让自己对这个主题有所了解。现在几乎在我所到之处,我都会遇到以下关于 FaaS 的说法:
1)大多数 FaaS 平台都支持降到零的扩展;
2) FaaS 提供商根据其功能执行时间(通常以毫秒为单位)向用户收费;
3) 潜在的冷启动(即创建新实例而不是重用现有实例)是 FaaS 中的一个问题,因为它们会大大降低应用程序的性能;
第 1 点和第 2 点被认为是福利——您得到的正是您所需要的(如果适用,什么也不包括),并且您只需为您得到的东西付费。
第 3 点被认为是一个缺点 - 请求需要更多时间才能完成。我见过作者将冷启动描述为 FaaS 平台尚未成熟的标志。我见过从业者说他们设置周期性请求只是为了防止他们的功能变得不活跃和“陷入困境”,从而在下次调用时触发冷启动。
我的问题是 -为什么冷启动被视为不可取而不是权衡?
我的意思是,考虑到用户在 FaaS 中为执行时间付费,避免拥有温暖但空闲的函数实例通常不符合他们的最大利益吗?对我来说,这似乎是一个成本与高可用性的决定。我误解了什么吗?有一个温暖但空闲的函数实例不计入一个人的执行时间吗?即使是这样:
a) 从提供者的角度来看,这不是不可取的吗(必须分配既不使用也不付费的资源)?
b)发送定期请求(如上所述)肯定会花费您,对吗?