如何根据java应用程序内存

时间:2017-07-07 13:49:22

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

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

您可以创建一个与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