启动不了怎么回事呢?[阿里云Serverless]

启动不了怎么回事呢?

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
1 条回复 A 作者 M 管理员
  1. 好像是因为你本地没装go环境

    此答案来自钉钉群“Serverless 开发者技术学习群”

  2. Serverless分为冷启动和热启动,整个函数运行需要四步:下载代码,启动容器,初始化运行环境,运行代码。当函数第一次执行时,会经过完整的四个步骤,前三个过程统称为“冷启动”,最后一步称为“热启动”。

    当容器从“冷态”开始启动时,函数需要: 从外部持久化存储中获取代码包; 逐步启动(Spin up)容器; 在内存中加载程序包代码; 运行函数的处理程序(handler)方法/函数。 这些步骤需要一段时间才能完成,尤其是第 1 到第 3 步。当容器已经变“热”后,它会直接跳到第 4 步,这样可以节省大量的时间并能使应用程序的响应更快。

    “冷启动”的影响从几百毫秒到几秒或几十秒不等。有些原因会导致导致冷启动延迟。比如内存大小:分配给函数的内存越多,启动速度越快; 运行时:与编译运行时(Java、.NET、C#)相比,通常脚本语言(Python、Ruby、Javascript)在启动时的性能要好得多, 速度能提高 100 倍,; VPC:在虚拟私有云中运行的函数会有额外的延迟,通常要多一到两秒才能启动;尝试着将你的函数设计为运行于 VPC 之外;

    代码包大小:包越大,启动新容器所需的时间越长,尽管如此,这可能是影响启动延迟最不重要的因素了。

    以下 6 种策略可以解决或至少可以缓解容器启动延迟对 Serverless 应用程序的影响: 监控性能并记录相关指标, 增加内存分配, 选择更快的运行时, 将共享数据保存在内存中, 压缩程序包的大小, 保留一个预热的函数池, 使用时间序列预测。

    在函数执行期间最好始终记录时间戳,并监控函数调用历史记录中的持续时间异常值。 每当它的性能低于预期时,查看日志并确定代码的哪些部分导致了性能的下降。