我们有一个shell脚本,它通过多个步骤运行java和python程序的组合。在AWS中,当我们需要同时运行多个参数集时,我们会发送一个参数集,并向所有预先构建的VM发出请求(serverlist是CV-1、CV-2、CV-3等)。这些进程中有几个可以同时运行,除了数据库更新之外,它们没有任何相互依赖关系。我们有多达16个VM同时运行,没有任何问题,有一个控制实例,它只跟踪每一个VM完成的时间。
我们正在寻找更多的可伸缩性。如果我们不需要让16台机器“运行”并等待一些东西来启动它们,那就太好了。我们希望能够启动尽可能多的我们需要,但同样有兴趣不为他们支付时,他们是空闲的。他们有超过80%的时间无所事事。但一旦我们需要他们,我们需要他们的速度,因为其中一些可能需要一段时间才能完成。这些机器都是一样大小的。这也可能是个问题。
我在谷歌服务器上工作的例子不多,虽然这似乎是我所需要的,但还不完全清楚它是否像我所希望的那样工作。我希望能够将所有的程序(python、Java、shell)放到一个容器中,并动态地实例化机器的一个实例。我只需要传递它的3个参数,这看起来很容易。
在我感到困惑的地方,是能够运行的吗?我还没有看到一个启动shell脚本或python程序的例子。很多Java "hello world“(就我目前的专业水平而言)都很好,但我没有看到任何运行shell脚本的东西。即使是python“脚本”也是可以接受的,甚至可能更好。
根据输入的大小,每个脚本运行10分钟到5个小时。所以四到五分钟的启动不会打扰我们的。多数在20 min范围内,约5%在4+hour范围内。
问题是:这种方法是否适用于谷歌的无服务器服务?如果是否定的,那么剩下的这些就不重要了!
谢谢
发布于 2021-04-19 19:43:26
Serverless Compute产品(云运行、云函数、App )响应HTTP请求。因此,您需要公开一个HTTP服务器来使用这些服务。不可能进行后台处理,而且时间有限。
如果需要运行后台进程,或者不运行https进程,则可以使用Cloud进行欺骗(使用容器并在假构建中运行所需的命令),或者可以使用AI平台定制培训运行容器数小时。
这个最新的解决方案是唯一支持GPU容量的解决方案。
您将需要更新或重新设计您的流程以适应此模型。根据您的要求,我认为可移植性不是即时的。
https://stackoverflow.com/questions/67164597
复制相似问题