首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在google production集群上部署烧瓶-api的最佳实践

在google production集群上部署烧瓶-api的最佳实践
EN

Stack Overflow用户
提问于 2020-04-05 17:54:33
回答 1查看 397关注 0票数 0

在深入学习模型的推理api中,使用了一个烧瓶api(使用gunicorn) .这个特定的推理过程是非常密集的cpu (尚未使用gpu )。

基于以下方面将其部署到kubernetes集群的最佳实践是什么:

  1. ,我应该创建多个豆荚处理请求使用单个枪手工人,还是更少的吊舱,使武装多工人?(节点内存footprint)
  2. since google提供了使用外部负载均衡器将您的部署公开为一个服务,我是否需要在stack?
  3. creating的相同节点上安装一个nginx服务器?-)
EN

回答 1

Stack Overflow用户

发布于 2020-04-06 10:56:15

  1. 更小的豆荚通常更好,只要你停留在“数千”以下。对于集群来说,放置一个需要1CPU和1GB RAM的吊舱比放置一个只需要16 CPU和16 GB RAM的单个吊舱要容易得多。您通常需要多个副本来进行冗余、容忍节点故障,以及在任何情况下的零停机时间升级。
  2. 如果Istio入侵系统对您有效,您可能不需要在集群中分离一个URL路由层(Nginx)。如果您可以直接访问Gunicorn服务器而不需要路由或过滤,那么直接将LoadBalancer服务指向它们是一个有效的LoadBalancer 16副本,一个应用程序通常需要比一个包含16个线程的副本更多的内存;还有多少取决于应用程序。

特别是,如果您将模型加载到内存中,并且模型本身很大,但是多线程设置可以共享它的一个副本,那么一个大荚可以比16个小豆荚占用更少的内存。如果模型是直接被COPY编辑到Docker映像中的,并且应用程序代码是mmap()的,那么您可能可以在内核层共享内存。

如果模型本身很小,并且大部分内存都用于处理,它仍然会使用“更多”内存来拥有多个荚,但这只是运行时系统和HTTP服务的成本;如果没有共享,则不应该实质性地更改每个线程/任务/pod所需的内存。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61046957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档