Cpu as a autoscaling metric [was CFScaler - CloudFoundry Auto Scaling]


john mcteague <john.mcteague@...>
 

Is CPU a valid autoscaling metric when running apps in system that uses CPU
shares like CF since the CPU reported to CF by the Linux container is
always in the context of all CPU on the host (DEA) machine?

If my underlying DEAs have 8vcpu's and only one app is on that DEA then it
could consume and report 800% CPU. Depending on how I have configured my
DEAs it may actually be guaranteed a minimum of 25% CPU by the Linux
scheduler.

Given that, saying my application should scale when it hits 70% CPU is
entirely inaccurate as if may never be allowed to get anywhere near that,
or if it does exceed 70% it could keep going until it consumes all dea CPU.

Memory likewise is a bad metric for autoscaling in many cases, particularly
Java apps where the container view doesn't take into account the JVM heap
management.

The real value IMO for autoscaling is for apps to advertise factors ( via
firehose?) specific to them such as message queue depth, http response
times etc, and scale based on those.

John.

On 27 Nov 2015 11:12, "Layne Peng" <layne.peng(a)emc.com> wrote:

Nice work! It is what we exactly need!

Join cf-dev@lists.cloudfoundry.org to automatically receive all group messages.