【问题标题】:How to scale aws ec2 cluster based on java application memory如何基于java应用内存扩展aws ec2集群
【发布时间】:2017-12-11 20:28:47
【问题描述】:

我有一个部署在 aws ec2 集群上的 java 应用程序。我根据 cpu 使用情况配置了自动缩放,但问题是应用程序不是 CPU 密集型而是 IO 密集型,CPU 使用率平均为 20%,因此当流量增加时,它无法实时发送所有消息导致缓冲.这会导致下游系统中的消息延迟到达。

如何根据已部署应用程序的传入流量和堆使用情况自动扩展集群?

【问题讨论】:

    标签: java amazon-web-services amazon-ec2 cluster-computing autoscaling


    【解决方案1】:

    您应该为此目的使用custom metrics CloudWatch 默认不收集内存消耗。要启用此功能,您应该使用自定义指标脚本,然后您可以更改与内存消耗费用或您需要监控和响应的任何其他事件相对应的自动缩放组行为

    【讨论】:

    • 其实这就是答案。 CloudWatch 默认不收集内存消耗。要启用此功能,您应该使用自定义指标脚本,然后您可以更改与内存消耗费用或您需要监控和反应的任何其他事件相对应的自动缩放组行为
    【解决方案2】:

    您可以创建一个使用 cron 运行的 bash 脚本,该脚本收集 Java 堆内存使用情况和传入连接,然后将其发送到 cloudwatch 自定义指标。

    How to collect to memory and disk stats from AWS ec2 instances

    Examples in Perl

    And then Alert and Auto scale based on those custom metrics

    【讨论】:

    • 我已经尝试过了,但是这些是额外的网络调用,目标系统无法处理它导致限制。我们正在考虑其他事情,尚未最终确定。
    • 增加ec2实例类型并使用ebs优化的?
    猜你喜欢
    • 2018-05-18
    • 1970-01-01
    • 2019-12-01
    • 2020-02-26
    • 1970-01-01
    • 2014-11-06
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多