在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달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠