在Fargate上长时间运行的Java应用程序突然退出,没有任何异常信息出现。

0

【以下的问题经过翻译处理】 您好,我在Fargate上运行了一个长时间的Java程序,使用了1024个单位的CPU(1个CPU)和4G内存,作为步骤函数工作流程中的一个步骤。这个Java程序有以下功能:

  • 从SQS队列中拉取无限循环的消息
  • 使用Transfermanager从另一个帐户的S3下载一个大小为17G的.tar.gz文件(只需要3分钟以上)
  • 解压缩.tar.gz文件,创建一个大小为50G的文件和一个带有校验值的小.md5文件。
  • 根据.md5文件中的内容验证50G文件的校验和。(约7分钟)
  • 通过分段上传(上传分段,然后合并)将未压缩的文件上传到另一个S3中,大约需要12分钟。

问题是,根据我的日志,我有时看到程序在未压缩时停止了,有时在上传时也停止了,没有异常。我猜测可能存在系统级问题(操作系统)或JVM已经死机。能否请您分享以下想法:

  • 有哪些调试方法?
  • 猜测问题或有任何其他建议吗?谢谢。
profile picture
EXPERTE
gefragt vor 6 Monaten16 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 您可以使用下面显示的命令描述已停止任务的详细信息。这将提供关于stopCodestoppedReason值的见解,可以用于确定失败的原因。

aws ecs describe-tasks --tasks <task-id> --cluster <cluster-name>

在同一输出中,您可以查看容器部分并检索容器进程的exitCode。这将非常有用,以确定容器进程终止的原因。

如果容器由于OOM问题终止,则exitCode将为137。

您还可以设置[Cloud Watch Container Insights指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/deploy-container-insights-ECS.html),以收集任务级别的资源指标,以识别系统级资源是否存在任何问题。

希望这对您有用。如果您需要更多关于此信息的澄清,请告诉我。

profile picture
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen