微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何扩展重型视频渲染服务器?

如何解决如何扩展重型视频渲染服务器?

我正在使用 Node.js 开发视频渲染服务器。它生成多个无头 chrome 并使用 puppeteer 库来捕获屏幕截图并将它们提供给 ffmpeg。后来它通过一些后期处理将所有部分连接起来。

现在我想将其移至生产环境,但它的性能不高。 尝试过无服务器架构和 cloudrun 等,但仍然无法实现。他们还清楚地提到这些不适用于繁重和长时间运行的任务。视频渲染时间过长,甚至比我的笔记本电脑花费的时间还要长。

我尝试使用 GCE,结果令人满意,但现在我很难扩展它。实际上服务器一次只能有效地处理一个请求。如何横向扩展并确保每个人一次只收到一个请求?

提前致谢。

解决方法

要增加相同实例的数量,您可以使用 Managed Instance Groups。查看 autoscaling documentation 以更好地了解它的工作原理,但基本上它说:

您可以根据反映实例组负载的以下一项或多项指标进行自动缩放:

  • 平均 CPU 使用率。
  • HTTP 负载平衡服务容量,可以基于利用率或每秒请求数。
  • Cloud Monitoring 指标。

如果您将在创建新实例组时基于 CPI 使用自动缩放enable autoscaling and set it up

以下是执行此操作的 gcloud 命令示例:

gcloud compute instance-groups managed set-autoscaling example-managed-instance-group \
    --max-num-replicas 20 \
    --target-cpu-utilization 0.60 \
    --cool-down-period 90

您还可以使用任何可用的 metric to scale up your group 甚至 create a new custom metric 来触发扩大您的群组;

您可以使用 Cloud Monitoring 创建自定义指标并将您自己的监控数据写入 Monitoring 服务。这使您可以使用熟悉的数据结构和一致的查询语法并行访问标准 GCP 数据和自定义监控数据。如果您有自定义指标,则可以选择根据这些指标的数据进行扩展。

最后 - 我找到了这个 example use case that scales up group of VM's based on pub/sub queue,它可能是您正在寻找的解决方案。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。