首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS Fargate的性能问题

AWS Fargate的性能问题
EN

Stack Overflow用户
提问于 2021-06-15 08:54:31
回答 3查看 4.6K关注 0票数 7

我们有一个旧的Java应用程序在Jboss中运行,为7.1.1。目前,该应用程序运行在AWS EC2实例类型t3.media上,它是两个CPU核和4GB内存。

我们正试图用CI/CD和AWS Fargate更新我们的应用程序。我们成功地实现了现代化,但没有表现出来。

Fargate的任务定义与EC2实例(2048 CPU和4096内存)具有相同的CPU和内存。Fargate位于同一个子网中,并与EC2实例链接到同一个安全组。我们不明白为什么演出这么慢。

应用程序通常搜索音乐作品的细节(创建者、出版商、艺术家等)。如果我们用一大串感兴趣的人来做音乐作品,在EC2实例中,它只需不到20秒,而在Fargate则需要大约30分钟。

我从运行在EC2实例上的同一个Jboss和相同的Java上创建了docker映像。

另一个信息是,数据库位于另一个(非AWS)数据中心.

请您指导我如何通过使用AWS Fargate实现与旧安装程序相同的性能?我在法门里少了什么?

任务定义

代码语言:javascript
复制
{
    "containerDefinitions": [
      {
        "name": "CONTAINER_NAME",
        "image": "<IMAGE1_NAME>",
        "memory": 4096,
        "essential": true,
        "logConfiguration": {
            "logDriver": "awslogs",
            "secretOptions": null,
            "options": {
              "awslogs-group": "/ecs/TaskDefinitionName",
              "awslogs-region": "eu-central-1",
              "awslogs-stream-prefix": "ecs"
            }
        },

        "portMappings": [
          {
             "hostPort": 8080, 
             "containerPort": 8080,
             "protocol": "tcp"
          }
        ]
      }
    ],
    "compatibilities": [
        "EC2",
        "FARGATE"
    ],
    "requiresCompatibilities": [
        "FARGATE"
    ],
    "networkMode": "awsvpc",
    "cpu": "2048",
    "memory": "4096",
    "family": "TaskDefinitionName",
    "taskRoleArn": "arn:aws:iam::accountId:role/ecsTaskExecutionRole",
    "executionRoleArn": "arn:aws:iam::accountId:role/ecsTaskExecutionRole"
}

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-06-29 09:11:49

我从AWS支持得到的答案如下。

"ECS Fargate任务可以放置在任何可用的底层主机上,满足任务定义中指定的CPU和内存,因此可能具有不同的性能。EC2实例更适合于需要控制应用程序性能的情况。“

我对开发人员的建议是,如果网络吞吐量和IO性能对于您的应用程序更好地使用EC2很重要的话。

票数 7
EN

Stack Overflow用户

发布于 2021-06-15 11:10:38

虽然您可以预期EC2和Fargate之间的性能差异很小,但是您看到的增量非常“荒谬”,而且这里肯定会发生一些事情。设置是否100%相同(唯一的区别是任务运行的位置)?另外,为了排除故障,您是否尝试过在一组更大的资源(例如4 vCPU /30 if )上启动Fargate任务,以查看这是否有任何区别?再说一次,只是为了弄清楚“能力”是问题还是问题在别的地方。

票数 2
EN

Stack Overflow用户

发布于 2021-06-16 15:49:39

监视性能滞后的唯一方法是使用容器洞察。只有这样,您才能监视CPU和内存利用率、网络带宽、性能日志等指标。在需要的情况下,增加CPU限制和内存可能会有所帮助。然而,与性能工具验证的AWS EC2相比,Fargate已经被多次报告为慢。到目前为止,AWS没有提供任何具体的解决方案。

参考资料-

  1. https://discuss.newrelic.com/t/php-agent-on-aws-fargate-performance-issue/124367
  2. https://filia-aleks.medium.com/ec2-versus-fargate-performance-comparison-34b1002fbbaa
  3. https://community.cloudonaut.io/t/spring-boot-on-fargate-slow/318
  4. https://www.reddit.com/r/aws/comments/921szi/migrating_java_applications_from_ec2_to_fargate/
  5. https://www.reddit.com/r/aws/comments/hqjyqd/ecs_performance_10x_slower_than_ec2_instances/
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67983075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档