VM sizing for FME Server in the cloud

Liz Sanderson
Liz Sanderson
  • Updated

FME Version

Introduction

When deploying FME Server on VMs in the cloud, a very common question is what size and type of VM should be used. This is hard to answer because often, we do not have the data that we need to make informed and solid decisions on VM size. Additionally, each project or scenario is unique regarding its requirements and the resources that are needed, which makes it hard to recommend a one size fits all. 
The solution to this problem is to start with the smallest size and general purpose that can run production workflows and collect data to improve and adjust the selection over time. This can better inform decisions for future deployments and at the same time, continuously learn about the requirements of our individual scenario.
 

Starting point

Technical specifications & general recommendations for FME Server

The first thing to consider is the Technical Specifications of FME and to review the existing guides regarding hardware requirements and FME Server host system sizing.
 

VM size

A general guideline is to plan with 1 CPU core for each FME Engine, due to its single-threaded implementation and a minimum of 8 GB of memory. Additional CPUs are recommended for the web server and the FME Server Core. For example, an express install with a VM with 2 virtual cores (vCPU) and 8GB provides 1 core for web server & FME Server Core and 1 core for engines. This should be the minimum used for FME Server. This is also similar to the smallest FME Cloud instance size recommended for production workflows. 
In a distributed setup (FME engines deployed on different machines than the FME Server Core) a similar size is recommended, but it is possible to experiment with 1 CPU machine for FME engines if it is desired to only run one engine per VM. Iit is also recommended to plan for more resources for a Windows deployment, because FME Server runs more efficiently on Linux distributions.
 

VM type

After sizing a VM, there is still a wide range of VM type options because cloud providers offer different types tailored to specific scenarios. The best choice to start with for a new FME Server is usually the “General Purpose” option. These VM types are well balanced between CPU & Memory. For more details about the specifications and traits of the general-purpose VM type please refer to the respective documentation for Microsoft Azure, Amazon Web Services & Google Cloud Platform.

Recommended general-purpose VM types:

Microsoft Azure Amazon Web Services Google Cloud Platform
D-series M-series N-series


Newer instance generations in each series usually deliver a better value, so choosing the newest available generation is a good idea.

Important: When choosing VM types, make sure to choose an Intel/AMD architecture for FME Server unless you want to try the Tech Preview of FME Server for Ubuntu 20.04 on a VM type using ARM architecture processors. 
 

CPU, Memory & storage optimized

VM types other than “General Purpose” like, compute-, memory-, or storage-optimized VM types should only be used if there is clear evidence that a majority of the workloads on your FME Server will benefit from a different VM type. For example, very memory-intensive raster/point cloud processing could benefit from memory optimization or workflows that rely heavily on writing lots of small files to disk might benefit from switching to a storage-optimized VM type. 
 

Monitoring resources in the cloud

Once a VM type has been chosen, the next task is to monitor the instance to make sure the resources are used efficiently and if needed, change the VM type based on this data. Our built-in monitoring functionality for FME Cloud is a good starting point to get an idea of which metrics should be monitored and when a decision should be made to resize or change VM types. To get started with monitoring VMs refer to the respective documentation for Microsoft Azure, Amazon Web Services ​​​​​​& Google Cloud Platform.
 

Conclusion

For deploying FME Server in the cloud it is recommended to start out with general-purpose VM types with 2 virtual CPUs and a minimum of 8 GB of memory. Monitor the VMs to make informed decisions about adjusting the size and VM type for the deployment.
 

Additional Resources

Please consider posting to the FME Community Q&A ​​​​​​​ if you have any further questions or are experiencing performance issues that are not addressed in this article. There are also different support channels ​​​​​​​ available.

Make sure to include as much information as possible:

  • What type of workspaces your FME Server is running?
  • What VM sizes and types have you tried?
  • What version of FME Server are you running?
  • What do the VM performance metrics show?

Was this article helpful?

Comments

0 comments

Please sign in to leave a comment.