my question: cannot find any reference on safe website / documentation.
FME Server 64-bit, each Engine memory capacity/need, how many cores does and engine uses
My understanding Engine = 4Gb and 1 core, but does it use more core on 64-bit
Indeed excellent question!but I like the answer more ...:)
What an excellent question and one we receive quite often!!You are planning your system architecture, budget, hardware, etc and you need to know exactly what is required.The reality is that your conditions will be quite unique compared to others and that makes it very hard to say.If I'm pressed, I will probably say42, but a better answer follows.
Let's say we need to do the following:
If we have a single FME Engine, we can run 1 job and then 5 jobs will be queued for later.If we add 1 more FME Engine, then we can process 2 jobs at the same time.So, if we have 6 FME Engines, we can process 6 jobs at the same time.
1 FME Engine = 1 job processed
6 FME Engines = 6 jobs processed (concurrently)
Your data, required transformations, system resources are unique and will produce a unique time required per job.In addition, you may have requirements on how many jobs need to be run per hour or minute.These all impact how many FME Engines you need.We provide proof-of-concept licenses to help you evaluate this.
Here is a nice neat (over-simplified) formula:
number of FME Engines=number of jobs you'd like done in an hour/number of jobs an engine can do in an hour
Let's make this a bit more real world and consider the impact of system resources like memory, processing power, I/O, etc.Imagine that jobs require much more time to process and system resources are limited.
Assume we know that:
In this example, there is no problem with system resources as 1 FME Engine will use only 50% of the memory
Setup: 1 machine with 1 FME Engine
Later on we decide:
If a job were to take 50% of the systems resources, then running 2 jobs on 2 FME Engines will take 100% of the system resources.The 2 jobs will run at the same time and finish at the same time.
Setup: 1 machine with 2 FME Engines
Later on we decide:
And we still observe:
So, for sure we need to attempt to run 6 jobs at the same time, which means 6 FME Engines.However, the existing machine's system resources are fully used by 2 FME Engines.
What are the options?
If 6 jobs are submitted and 2 FME Engines are available, 2 jobs will be started and 4 will be queued for later.You may need to reconsider the number of jobs required per hour based on what you can achieve.Perhaps 6 jobs in 3 hours is okay.
Setup: 1 machine with 2 FME Engines
The FME Workspace contains readers, writers and transformers that control how the job works.There are definitely more and less efficient ways to create a workspace.Take a look at the log file to determine where the most time is being taken.Search the Knowledge Center for lots of tips and tricks.However, it's likely that you won't get large enough performance gains to eliminate the need for scaling.
Setup: 1 machine with ?FME Engines
If 2 jobs on 2 FME Engines take all the system resources (memory, CPU, I/O), then running 6 jobs on 6 FME Engines will cause conflicts over system resources.This means that the jobs will run slower.This might be okay if there is no other acceptable option.
Setup: 1 machine with 6 FME Engines
You can upgrade the machines components to provide additional resources (vertical scaling).If the machine has more memory, then those memory intensive jobs will likely run faster too.This is a great option in cloud computing where machine virtual hardware can be upgraded in seconds.FME Cloud offers this functionality.
Setup: 1 big machine with 6 FME Engines
You can install FME Engines on multiple machines to provide additional processing capacity (horizontal scaling).To be clear, there is still only one central FME Server Core install.
Setup: 3 machines with 2 FME Engines per machine.