[Aliyun][FC] 记一次函数计算运行超时调试

在这里插入图片描述

本博客站点已全量迁移至 DevDengChao 的博客 https://blog.dengchao.fun , 后续的新内容将优先在自建博客站进行发布, 欢迎大家访问.

背景

公司最近有一个容错率较高的业务,需要用到 FFMPEG 对图像进行处理,于是我们部署了一个简单的 NodeJS 应用到阿里云的函数计算上来实现业务上的需求。

简单的联调测试通过后,我们将服务推到了生产环境。

发现问题

服务投入生产环境使用一段时间后,间歇性的出现了服务异常。翻看监控后发现函数运行时偶尔会出现 函数错误
服务上线后偶尔会出现函数错误
而且日志中也出现多次 Error: Function timed out after 6 seconds (maxMemoryUsage: 125.04MB)

由于业务并不算复杂,测试阶段记录下来的响应时间也在我们的预期范围内,所以我们给这个函数设置足足 6 秒的超时时间,但日志表明生产环境依然多次出现超时的现象。

进一步观察函数监控后发现已使用内存几乎占满内存配额:
已使用内存几乎占满内存配额
因为并发量不高,所以猜测可能是生产环境实例规格过低,导致在共享设备性能时无法在指定的超时时间内完成业务。

解决问题

基于上述猜测,我们把生产环境的实例规格从最低的 128 MB 升级到 256 MB 并继续观察生产环境中函数的表现。

事实证明猜测是正确的。实例规格翻倍后,函数错误再也没有出现,而且函数执行时间的均值与峰值之间的偏差也显著缩小,对外提供了更稳定的服务:
内存规格翻倍后的监控对比

参考

推广

欢迎大家领取 阿里云优惠券, 新购续费更优惠, 更有最高 10 % 返现,详询 钉钉:
限量阿里云优惠券

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值