【发布时间】:2015-05-13 20:36:04
【问题描述】:
我有一个 UpStart 服务作业,其中有许多 (~100) 个实例需要启动。它们中的每一个都是资源密集型进程,在启动期间会执行大量磁盘读取/写入。当它们全部同时启动或重生时,它们会由于过多的磁盘读/写请求而引起麻烦。
我需要一种方法来限制 UpStart 尝试同时启动或重生的实例数量。例如,有没有办法让 UpStart 推迟启动另一个实例,直到另一个实例的启动或重生开始后 30 秒?
【问题讨论】:
-
如果你的工作是一个 shell 脚本,你可以插入一个随机的暂停,这样当 10 个同时开始时,它们每个暂停不同的秒数并间隔自己 - 或者你可以在进行密集启动时让所有作业锁定某个文件。但这是一个与暴发户无关的shell脚本解决方案。
-
你能展示一个暴发户脚本吗?他们都一样吗?
-
我觉得@Paul 提到的lock 方法很酷。但这需要更改应用程序代码本身(顺便说一句,它不是 shell 脚本。它是一个完整编译的应用程序)。令人惊讶的是,UpStart 没有一些内置功能来自动保存和排队服务实例 (?)。