因此,首先,我四处寻找关于我所面临问题的现有线索,但我没有找到任何线索。{我也有答案。如果这里已经有这样的线索了,我很抱歉。此外,我将为即将到来的相对较长的帖子道歉。在
现在,我要做的是使用AWS RunShellScript文档运行同一个应用程序的多个(阻塞)进程。问题是,使用这种方法启动的进程不能超过5个。如果我通过SSH甚至手动启动它们,我可以启动几十个而没有任何问题。在
我使用的实例是Ubuntu。但使用AWS控制台时,使用AWS.7.7>资源时会发生同样的情况。在
每个命令通常都会阻止终端(即,如果您要手动执行,则阻止您在该终端实例中发出进一步的命令),进而设置其状态,如AWS SSM-正在进行的所示。从本质上讲,从awssm的角度来看,命令是不完整的,直到进程被终止或停止(下面将详细介绍)。在
问题是,我可以通过SSM运行到4个进程,并且仍然能够使用SSM(killing、inspection等)来操作它们——这意味着最多有4个正在进行的4个命令。但是,当我启动第5个命令时,当它们都继续工作时,我不能再使用SSM了,没有其他命令被执行(无论是新进程还是其他命令)
最简单的复制方法是通过AWS RunShellScript文档发送5简单的sleep 60命令,然后尝试任何新命令-您会注意到,在SSM中,它们将弹出为进行中的,但如果您跟踪amazon SSM-代理.log文件,则不会实际执行新命令。更奇怪的是,您会注意到日志在这个块之后停止:
2019-08-13 08:25:12 INFO [MessagingDeliveryService] SendReply Response{
Description: "Reply e82b5dcb-0e81-4698-8f6e-fe1411f18300 was successfully sent.",
MessageId: "aws.ssm.1af47ba7-0d28-41ac-83dd-3bffbaa7db2d.i-08d3f4176a025a07b",
ReplyId: "e82b5dcb-0e81-4698-8f6e-fe1411f18300",
ReplyStatus: "QUEUED"
超过此点将不再处理进一步的命令,也不会记录进一步的信息。然而,使用我们的例子,当睡眠结束时,队列的命令将在另一个插槽打开时立即执行(假设您一次只能将5个命令排队,我相信是这样,但没有提及)。在
注意:正如我已经提到的AWS RunShellScript文档,同样的问题也发生在AWS RunRemoteScript文档中。在
由于我必须提供一些代码,请使用Python从所提到的示例中找到以下代码片段:
^{pr2}$我希望能够通过SSH或手动运行尽可能多的阻塞命令(这远远超过5),但要么我在SSM方面做错了什么,要么AWS SSM受到了限制。在
简短的回答。在amazon ssm中增加CommandWorkersLimit设置-代理.json文件
关于我如何追踪它的反应稍微长一点。在
源代码中的ReleaseNotes
如果我们在Mds部分使用一个峰值amazon-ssm-agent.json.template文件,您可以看到它被设置为5。在
相关问题 更多 >
编程相关推荐