阿里云函数计算的冷启动时间根据不同的应用以及配置有所差异,一般来说确实存在一定的冷启动时间。您所提到的SD应用可能是指Serverless Devs,除了函数计算,它还支持其他云平台。对于冷启动时间长的问题,我们可以尝试以下优化:
使用预热功能。函数计算的预热功能可以提前准备好运行环境,降低冷启动时间。
使用较小的运行环境。如果应用不需要使用较大的运行环境,可以选择使用较小的运行环境,这将降低构建和部署过程中的时间。
使用本地跨云开发工具。本地开发工具可以在本地运行和测试函数,省去了等待部署和运行的时间。
优化函数代码。使用较少的依赖项和更高效的代码,可以减少函数执行时间。
AIGC模型是放在了应用/initialize里加载,所以用户侧看都算在GPU冷启动里了
如果换一个其它相对小一些的推理模型,比如mobilenet-v2或者ppocr,您也可以观察到GPU冷启动耗时相应的缩短(10秒左右)
GPU容器拉起比较快,主要是模型加载的耗时。
此答案来自钉钉群“阿里函数计算官网客户"
冷启动频率增大是Serverless vs. Serverful 架构引入的一个新的挑战,过高的延迟可能会让对长尾延迟(P99)敏感的业务望而却步。在函数计算中,可以采用下面的办法来减小冷启动的影响。
精简紧凑的代码包: 开发者要尽可能瘦身代码包,去掉不必要的依赖。
降低Download/Extract Code的时间。例如对Nodejs函数使用npm prune, 对Python函数使用autoflake , autoremove
去除没有使用的依赖。另外一些第三方库中可能会包含test源代码,无用binary,和数据文件。有选择地删除无用文件可以降低函数代码下载解压时间。
选择合适的函数语言: 在热启动延迟差别不大的情况下,使用Python这样的轻量语言可以大幅降低长尾延迟。
选择合适的内存: 在并发量一定的情况下,函数内存越大,冷启动表现越优。
避免不必要的配置: 对于没有需求的函数,不配置VPC功能对冷启动有很大帮助。
降低冷启动概率:使用定时触发器 预热函数 使用Initializer 函数入口,函数计算会异步调用初始化接口,消除掉“User Code Init” 的时间,在函数计算系统升级或者函数更新过程中,用户对冷启动几乎无感知。
冷启动是Serverless运行环境中开发者必须面对的痛点。开发者可以通过精简代码,选择合适配置降低冷启动的影响。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。