我在Google云端平台的一个项目中有一个托pipe的实例组。 我的实例组使用GCP提供的最小的预定义机器,f1-micro(更多信息,请访问https://cloud.google.com/compute/docs/machine-types#sharedcore )
我的实例组使用以下设置启用了自动缩放:
gcloud compute instance-groups managed set-autoscaling [my-ig] \ --region us-central1 \ --min-num-replicas=3 \ --max-num-replicas=15 \ --cool-down-period=250 \ --scale-based-on-cpu \ --target-cpu-utilization=0.9
我有一些奇怪的行为,在cpu使用中出现一些小的/短的峰值之后,autoscaler决定大规模地自动调整我的实例,然后在几分钟后回到原来的数字。
这是我的实例组的cpu-graph的样子,在这个屏幕截图中,实例组没有自动缩放,它有3个实例运行我的应用程序:
对我来说,这些情况看起来并不像他们需要自动调整,他们似乎是稳定的,实际上,网站的performance非常好。
这是谷歌关于这种虚拟机实例的说法:
f1-micro机器types提供突发function,允许实例在短时间内使用额外的物理CPU。 当您的实例需要比最初分配的更多物理CPU时,会自动发生爆炸。 在这些峰值期间,您的实例将以机会性的方式利用突发中的可用物理CPU
我的问题是:
我的select(我认为)是:
您可能正在运行f1-micro实例类(可以将实例CPU利用率超过100%)的突发function以及Autoscaler如何处理高CPU负载 。
在CPU利用率较高的时段,如果利用率接近100%,则自动调节器估计该组可能已经大量过载。 在这些情况下,自动调节程序会将虚拟机的数量增加至less50%或最less4个实例,以较高者为准。 通常,被pipe实例组内的CPU利用率不会超过100%。
我想你已经很好地概述了你的select。 我会build议检查,如果你可以pipe理没有自动缩放。
如果您的应用程序负载分布与昼夜节律相关(夜间无stream量,白天高负载),则可以半自动调整实例组大小(可以从cron调用GCE API / gcloud)。