所以,我一直在玩弄我的自动缩放配置和我的 Cloudwatch 警报,试图让我的所有实例都在发出呼噜声而不是咆哮声。
我似乎无法摆脱不断的悠悠球。CPU 使用率上升,引入一个实例,CPU 使用率下降,杀死一个实例。冲洗并重复。
我目前的警报基于平均 CPU >= 40% 的 3 x 1 分钟间隔。也许我可以基于别的东西?CPU 是一个棘手的问题,因为当此图处于峰值(高)时,我可以看到一些 CPU 空闲的实例,因此单个实例提高了平均值。
我发现有些人在我得到 200 的时候得到 502。显然,我希望这是一致的,并一直停止这种飙升。
提前致谢。
编辑 1:我已将 Cloudwatch 指标调整为 2 分钟内的 20% cpu,并且还发现了一个 nginx 错误,该错误也可能归因于一些额外的负载。当前图表如下所示。
编辑2:负载监控要好得多。有关负载警报,请参见下文。我收到警报的频率要低得多,而且一切都运行得更好。
这就是我每分钟在 cron 中运行的内容;
/usr/local/bin/aws cloudwatch put-metric-data --namespace="NS" --metric-name="GroupLoad" --value `cat /proc/loadavg | awk '{print $1}'` --dimensions AutoScalingWebGroup=NS-WebGroup
而不是基于CPU的 AutoScaling尝试Server Load。
AWS AutoScaling 可以对任何 CloudWatch 指标进行操作,您可以编写自己的自定义 CloudWatch 指标。
有关 AutoScaling 如何工作的更多信息:http: //docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/as-scale-based-on-demand.html
创建自定义指标
http://aws.amazon.com/blogs/aws/amazon-cloudwatch-user-defined-metrics/