sch*_*der 0 amazon-ec2 amazon-web-services boto
我需要能够在一分钟内终止 EC2 实例。
当前过程每个实例只需不到 2 分钟,因为操作系统关闭过程需要 60 秒。如果可能的话,我想大大加快终止速度。
有谁知道加速terminate()
EC2 功能的方法?有没有办法像其他虚拟化解决方案那样在没有关闭过程的情况下“拔掉插头”?
背景:
在Boto中,我在处理子网删除或其他后续任务之前terminate()
使用该wait_until_terminated()
函数调用该函数。
但是,如果进程(如终止)花费的时间超过一分钟,我正在从 3rd 方 API 触发 boto,该 API 会超时。这意味着每次我终止时,API 都会返回错误。
我曾尝试与 3rd 方合作以增加超时时间,但诸如终止之类的事情不在他们预期的用例中,并且截至目前,3rd 方没有解决方案。
我尝试了 astop(Force=True)
并且它快了一点,但仍然超过一分钟。
我试图强行删除 EBS 卷,但您必须先关闭实例,这使过程超过 1 分钟。
我试图在SSH'ing运行各种shutdown
和halt
命令参数,但我无法找到运行超过60秒的更快的操作系统命令。正在运行的服务已经最少,我无法进一步加速操作系统关闭。
我希望找到一种通过 AWS“拔掉插头”的方法。或者其他一些快速终止的方法。似乎终止需要关闭操作系统,这对我来说有点奇怪,当我无论如何都想点燃实例时。
虽然我同意这肯定是一个 XY 问题,您应该以另一种方式解决这个问题,但有比使用shutdown
. 没有理由等待 Linux 调用 init 脚本并发出TERM
和KILL
到所有进程。
从历史上看,我相信killall -9 init
或者一个神奇的 SysRq 键是最快的方法。但是,systemd
列举了很多方式(man systemd
),例如:
SIGRTMIN+13
Immediately halts the machine.
SIGRTMIN+14
Immediately powers off the machine.
Run Code Online (Sandbox Code Playgroud)
在找到 AWS 反应最快的选项之前,您可能需要测试几个选项,但是从 60 秒操作系统关闭到 1-5 秒应该足够简单。
归档时间: |
|
查看次数: |
1213 次 |
最近记录: |