The Primary Load Generator, also referred to as the Alpha Maestro, is a special type of server / maestro that, in addition to the normal maestro functions, handles all of the heavy lifting associated with running a composition. This frees up the main instance so that it can focus on providing a responsive UI and dashboards.
Why you might need to select a primary server
You might benefit from selecting a primary server if you see out of memory errors in the status display or event log while trying to load your compostion. You may also benefit if it's consistently taking a long time to load your compostion. Out of memory errors and long load times can be caused by utilizing many load servers in addition to tracks that take up lots of memory. Two examples of tracks that can potential take up lots of memory are, including clips that make heavy use of static resources and/or including clips that store large amounts of file data.
As a best practice, we recommend that a primary server be set when 1,000+ servers will be used to generate load. Depending on the makeup of your clips/tracks/composition, this number may be lower.
Two of the functions that fall into the "heavy lifting" bucket are communication and composition distribution.
The Primary Server maintains the lines of communication with all other maestros for play, stop, pause, ramp, status checks, etc. commands coming from the main instance.
At composition load time, the main picks (or has picked for it) a primary server and sends a load composition request to it. The primary does a full load of the entire composition and saves a copy of the track that is to be played in memory for every maestro. The memory requirement = (size of track) * (number of load generators running that track) * (number of tracks) for the primary specifically. Once it has all of this in memory it then downloads the entirety of seed data from the repository (more memory usage) and splits up the seed data to be allocated to each maestro (this is why the primary has a copy of every track being run by every load generator). Once the seed data is split up this memory gets freed though, unlike the copies of the tracks. Once the seed data has been distributed it sends a load request to each maestro, but non-primary maestros only have to store in memory one copy of the track, the one it is about to play. The primary keeps all of these tracks in memory so it knows which maestro is playing which track, so when a ramp request comes in, it can send it to the appropriate maestros (the ones actually running that track).
How to select a primary server
As started above, at compostion load time, the main instance will automatically pick a primary server from the list of available maestros. If you've launched a maestro specifically to perform as a primary server, you will need to select it before loading your composition. To do so:
1. Open your composition
3. Click Play Options...
4. Expand the Maestro dropdown
5. In the dropdown, locate and select the maestro that you launched
6. Click OK
- The primary server must be launched from a location that is included in at least one track of your composition
- If the primary server is the only server in a location, it must also have an associated results server
- There is no mechanism for saving the primary server. If you close your composition and then reopen it, you must go through the process of selecting the primary server again.