Scaling FME Server Dynamically on Microsoft Azure

Liz Sanderson
Liz Sanderson
  • Updated

Introduction

If you are using the Azure Distributed Windows deployment then it leverages Azure virtual machine scale sets. Scale sets provide both a management and automation layer to make it easier to run highly available and scalable applications on Azure.

In this article, we will review different options for scaling the FME Engine Scale Sets.

Licensing

For these scenarios, it is advisable to utilize FME Flow Dynamic Engines licensing. If you are using Standard Engines, you will end up paying for capacity that you are not using. By licensing the FME Flow with dynamic FME Engines, you can scale the FME Engines up and down, and you will only consume credits when you run jobs.

Manual Scaling

The simplest way is to manually scale the number of FME Engine hosts up or down:

  1. In the Azure portal, select the `fmeserver-engine` Virtual Machine scale set.
  2. Click Scaling under Settings.
  3. You can then scale the number of hosts up or down using the slider.

Scaling on a Schedule

These instructions are based on this document here and detail how to scale up and down the FME Engine hosts.

  1. In the Azure portal, select the `fmeserver-engine` Virtual Machine scale set.
  2. Click Scaling under Settings.
  3. Choose Custom autoscale.
  4. Set the Scale mode to Scale to a specific instance count.
  5. Set the Instance Count to scale to the desired number of instances when no scaling conditions are met.
  6. Add a scale condition and select Scale to a specific instance count
  7. You can then define your schedule.

In the example below, the scheduler will scale the number of FME Engine VMs from 1 to 5, Monday through Friday, during a two-hour period in the afternoon. Since each instance has two FME Engines installed, the capacity will increase from two FME Engines to ten FME Engines. Since the FME Engines are pre-configured, they will automatically connect to the Default queue and begin processing jobs.

Scaling based on Azure Metrics

Scaling based upon a schedule can work for specific workflows where the workloads are predictable. However, when the load is unpredictable, scaling up and down based on a metric is often the best approach.

On Azure, you can trigger a scale event based on over 35 metrics. Metrics can be broadly categorized into four main areas: CPU, Memory, Disk, and Network. What you base your scale on really depends on your specific workflows and what the bottleneck is. CPU is often the bottleneck, so let’s scale based on the Percentage CPU.

  1. Select the fmeserver-engine Virtual Machine scale set.
  2. Click Scaling under Settings.
  3. Choose Custom autoscale.
  4. Set the Scale mode to Scale based on a metric
  5. Add a metric rule.

Scaling based on FME Flow Metrics

Often, with FME Flow, the system metrics on CPU/Memory aren’t particularly useful, as they only indicate what is currently running, not what is waiting to run. To get around this, you can use a custom metric from FME Flow to base our scaling on the length of queues. There is a wide range of possible scenarios and useful metrics, which highly depend on individual scenarios. Here is a proof of concept showcasing the scaling of VMSS based on the number of queued jobs: Scaling Exmaple

Was this article helpful?

We're sorry to hear that.

Please tell us why.

As of January 14th, 2026, comments on knowledge base articles have been closed. To make sure questions don’t get missed and to enable more community support, we’ve moved discussions to the FME Community. If you have a question or a comment about this article, please create a new post or create a support ticket.