FME Server provides easy and effective scalability solutions to ensure high performance:
When it comes to scaling FME Server, the Number 1 consideration is FME Engines. Increasing the number of engines available will give you the most benefit for scaling the throughput of FME Server. You can easily scale FME Server to support a higher volume of jobs by adding more engines to the architecture through a configuration file.
The FME Server Core contains a Software Load Balancer (SLB) that distributes jobs to the FME Engines. This single active Core is all you need to scale processing capacity. Each FME Engine can process one job at any one time, so if you have 10 engines, you can run 10 jobs simultaneously! If you plan on running a lot of job requests then your best bet is to increase the number of engines available - this will reduce processing time because, simply put, more jobs can be processed.
If you have jobs consistently sitting in the Job Queue, or you need faster processing of any backlogs of job requests, you should consider adding more engines to FME Server. Keep in mind that adding more engines will not reduce the time a single translation takes to run. This will be more dependent on the underlying hardware and the makeup of the workspace being run. Complex workspaces, big data manipulation, and large datasets just take more time to run.
(Note: The next sections are really not needed to properly scale FME Server but we've included them for you information.)
FME Server’s Web Application Server can process in excess of 100,000 HTTP requests per hour. In environments where an extremely large number of requests are expected, it is recommended to keep things simple by using the single Web Application Server. The FME Engines will remain the bottleneck as even the FME Server core will have no issues with the high number of requests. We believe there is no added benefit for additional FME Server Web Applications.
You can choose to create the FME Server Database on the default PostgreSQL database server that is provided. Alternatively, and for added flexibility and scalability, you can create the repository on your own Oracle or SQL Server database server. Keep in mind that the scalability of FME Server will be limited if you don't separate out the FME Server Repository Database.
This is offered as a consideration and their may be other benefits for your Administration team for doing this. Learn about the different options in the FME Server documentation.
When a job is submitted, transformation manager directives can be passed along with it to control where and when translation occurs.
Job Routing: Controls or spreads out the work load of engines running workspaces. In a distributed environment, you may have a mix of OS platforms where certain FME formats can and cannot be run. For instance, consider an FME Server on a Linux OS. Linux cannot run some of the formats that may be required by your business. It may then be necessary to have a Windows OS configured with an additional FME Server Engine. Using the "tag" directive (or "tm_tag" using the API, Web Services, or Console), you can set engines to process certain jobs based on the tag of the transformation request. To learn more, see Configuring Job Routing.
Job Priority: FME Server also offers the ability to set the job priority using the "priority" directive (or "tm_priority" using the API, Web Services, or Console). Any jobs sent with a priority tag can be moved higher in the job queue. To learn more, see Transformation Manager Directives.
No one has followed this yet.