0
votes

I have following setup with service fabric cluster:

  1. 5 nodes(Durability tier: Bronze and Reliability tier: Silver)
  2. Current average CPU utilization % on the related VM Scale Set (VMSS) averages around 14%.
  3. Services are deployed properly each with instance count of -1.
  4. Our application that uses the above services runs fine.

Using the azure portal, I attempted to setup auto scaling option for the above VMSS (in Scaling option):

  1. Used the scale out with a threshold of CPU utilization % as 10 (From above, the current value is 14).
  2. Configured it to wait for 5 minutes before scaling up.
  3. Rest of the details are shown in below json.

{ "location": "eastus", "tags": { "$type": "Microsoft.WindowsAzure.Management.Common.Storage.CasePreservedDictionary, Microsoft.WindowsAzure.Management.Common.Storage" }, "properties": { "name": "My Testing", "enabled": true, "targetResourceUri": "/subscriptions/MySubScriptionID/resourceGroups/My-RG-Name/providers/Microsoft.Compute/virtualMachineScaleSets/nt1vm", "profiles": [ { "name": "Auto created scale condition 1", "capacity": { "minimum": "5", "maximum": "10", "default": "5" }, "rules": [ { "scaleAction": { "direction": "Decrease", "type": "ChangeCount", "value": "1", "cooldown": "PT5M" }, "metricTrigger": { "metricName": "Percentage CPU", "metricNamespace": "", "metricResourceUri": "/subscriptions//MySubScriptionID//resourceGroups/My-RG-Name/providers/Microsoft.Compute/virtualMachineScaleSets/nt1vm", "operator": "LessThan", "statistic": "Average", "threshold": 5, "timeAggregation": "Average", "timeGrain": "PT1M", "timeWindow": "PT5M" } } ], "fixedDate": { "timeZone": "Mountain Standard Time", "start": "2018-09-18T00:00:00.000Z", "end": "2018-09-21T23:59:00.000Z" } }, { "name": "Auto created scale condition", "capacity": { "minimum": "5", "maximum": "10", "default": "5" }, "rules": [ { "scaleAction": { "direction": "Increase", "type": "ChangeCount", "value": "1", "cooldown": "PT15M" }, "metricTrigger": { "metricName": "Percentage CPU", "metricNamespace": "", "metricResourceUri": "/subscriptions/MySubScriptionID/resourceGroups/My-RG-Name/providers/Microsoft.Compute/virtualMachineScaleSets/nt1vm", "operator": "GreaterThanOrEqual", "statistic": "Average", "threshold": 10, "timeAggregation": "Average", "timeGrain": "PT1M", "timeWindow": "PT5M" } } ] } ], "notifications": [ { "operation": "Scale", "email": { "sendToSubscriptionAdministrator": false, "sendToSubscriptionCoAdministrators": false, "customEmails": [ "" ] }, "webhooks": [] } ], "targetResourceLocation": "eastus" }, "id": "/subscriptions/MySubScriptionID/resourceGroups/My-RG-Name/providers/microsoft.insights/autoscalesettings/My Testing", "name": "My Testing", "type": "Microsoft.Insights/autoscaleSettings" }

Observation:

  1. I waited more than 5 minutes (which is timeWindow value for scale out option). No new nodes are created.
  2. No new nodes are created after waiting for 10 minutes, 20 minutes and 30 minutes.
  3. When I configure the number of nodes to 6 (from 5) in the azure portal in the above VMSS (in Scaling option) manually, the node is created and everything work as expected.

Question:

  1. What am I doing wrong in the above configuration for auto scaling option?
1

1 Answers

0
votes

It appears that my scale in rule was conflicting with scale out rule. Once I removed the scale in rule, everything started working.