我们希望在具有16个vCPU的AWS EC2 Windows服务器实例上运行耗时的C ++构build。 由于成本高昂,我们希望这个实例开始 – 运行构build – 当构build完成(或由于错误而停止)时,停止实例
为此,我考虑使用警报,但是构build过程中有一些CPU使用率不高的部分(例如上传使用networking的文件,但几乎不使用CPU),并且警报无法处理CPU和networking通信的检查(AND运算符为失踪)。
有没有其他的机制可以用于空闲检测? 在某种程度上,我们可以更改我们的构build脚本,将消息(例如networking消息)发送到AWS。
你正在以这种错误的方式去做 – 正如你发现的那样,基于资源利用率来执行像这样的closures任务并不是最可靠的解决scheme。
相反,使用计划的Lambda作业(或在其他服务器上运行的cron脚本)来检测何时需要构build,然后启动服务器。 然后,为了closures,给实例一个实例angular色,使其具有停止自身的权限,并且作为构build过程的最后一步,实例可以使用AWS API将其自行closures。