1

我有一個部署在aws ec2集羣上的java應用程序。我根據CPU使用情況配置了自動擴展功能,但問題是應用程序不是CPU密集型的,但是IO密集型,平均CPU使用率爲20%,所以當流量增加時,它無法實時發送所有消息,導致緩衝。這導致消息到達下游系統的延遲。如何根據java應用程序內存縮放aws ec2集羣

如何根據傳入流量和部署應用程序的堆使用情況自動擴展羣集?

回答

2

爲此,您應該使用custom metrics CloudWatch默認不會收集內存消耗。要啓用此功能,您應該使用自定義指標腳本,然後您可以更改與內存消耗趨勢相對應的自動調整組行爲或任何其他需要監視和響應的事件。

+0

實際上這就是答案。 CloudWatch默認不收集內存消耗。要啓用此功能,您應該使用自定義指標腳本,然後您可以更改與內存消耗chages或任何其他需要監視和反應的其他事件相對應的自動調整羣組行爲 –

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

+0

我已經嘗試過,但這些是額外的網絡調用,目標系統是無法處理它導致節流。我們正在考慮其他事情,尚未最終確定。 –

+0

增加ec2實例類型並使用ebs優化的一個? – strongjz

相關問題