我们正在用AWS构建一个数据科学系统,我们的流程非常简单。
这个过程脚本应该花费5-10秒左右,这取决于数据和模型的大小。到目前一切尚好。
到目前为止,我们所做的是构建一个python应用程序(运行在kubernetes中),它侦听队列并运行数据科学流。我们面临的问题是Pythons的内存泄漏。不管我们做了什么,使用python采取的每一种方法--一个加载/卸载大型对象的长时间运行的应用程序--都会增长和增长,所以我们正在尝试一种新的方法,每次创建和关闭新进程时都在自己的进程上运行脚本(仍然是kubernetes中的)。
我的问题是有没有更好的方法?AWS Lambda -可能是一个很好的解决方案,但它有一个内存/cpu限制,不适合。Kubernetes作业--当脚本本身只运行几秒钟时效率低下。
还有其他解决方案来运行高负载的cpu/内存密集型工作请求吗?(我正在寻找一种资源/基础设施解决方案,而不是软件解决方案。)
发布于 2020-11-18 09:17:44
该服务可以始终侦听队列中的作业,也可以只在新工作到达时由队列启动单个作业。
这种权衡是单任务的启动时间与始终处于服务状态的成本。
定义需求--每天的作业数量、最大延迟、所需的ram/cpu等,然后选择合适的技术,以最经济有效的方式交付。
从AWS,AWS的步进功能,通过K8S乔布斯和AWS,到AWS EC2现场定价,等等。有很多选择,取决于需求。
希望有帮助:)
https://devops.stackexchange.com/questions/12779
复制相似问题