在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
专家
已提问 5 个月前9 查看次数
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
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则