在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
專家
已提問 6 個月前檢視次數 16 次
1 個回答
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
專家
已回答 6 個月前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南