A while back, Citrix released the Automatic Farm Tuner. What does it do? How can it improve your farm's performance? We checked it out for you.
The Automatic Farm Tuner can be used to tweak the data collectors in your farm for optimal performance. It is primarily intended for use in large (over 800 servers) farms, as the standard setting for data collectors is usually fine for smaller farms. It comes in two flavors, a W2k and a W2K3 version, which need to be installed on one of your farm servers (which will need a reboot after installation). The installation does not create a shortcut. Instead, it needs to be started from Program Files\Citrix\System32. The tool can also connect to other farms by running the mfreg /unregserver and then the mfreg 'servername' commands.
On starting the program, the welcome screen appears. Nothing interesting, Next. The program collects farm settings, and a warning pops up stating that the farm is already optimized. This is because in this case the farm contains only 4 servers, and the default settings are already ideal for a farm this size. After killing the warning, the gathered data is shown. The collected data is the number of servers, number of zones, if zone load sharing is enabled, the name of the largest zone, and how many servers this zone contains. Next once again.
The Most Preferred and Preferred data collectors for the zones are shown, Next.
Now comes the interesting part. The current settings for data collectors are shown. By default on smaller server farms the Very Large Farm Settings are disabled. Enabling them shows the standard (current) settings, which are used when no tuning is in place. Choosing 'Default Values' sets the values to the default for large farms. Choosing 'Optimized Values' calculates the optimal settings for your particular farm. If you're testing on a small farm, like I am, this turns the Very Large Farm Settings off again.
You can also change the settings to suit your farm. It's my opinion that these setting depend on a lot more than just the number of servers in your farm. Your tuning in an 1000 server farm in a single location (with of course a lovely fiber backbone) should be very different than in a 1000 server farm with 50 sites connect by a slow WAN. The performance of the data collectors is also important.
This brings us right to the following point: are the 'Optimized' settings good for every farm? I think they might make a good starting point for tuning your farm, but that's it--a starting point only. Optimal tuning requires a lot more data than the tool is collecting. I'm not going into details for tuning data collectors here, see page 24 of the PS4 Advanced Concepts Guide if you want to know more.
Click Next and Finish to apply the settings to all Most Preferred and Preferred data collector servers in the farm. If the setting could not be applied to a server because there was no available network path, an error message will pop up, but the settings will still be applied to the other servers. A reboot is required for the settings to take effect.
- Gives a good starting point for tuning data collectors for larger farms
- Allows you to apply tuning settings to several servers at once
- Optimized tunings settings are not likely to be optimal for all farms
- The tuning is done once only, it is not stored anywhere. If replace your data collectors or add some to the farm, you will have to set the tuning manually on these servers, or run the tool again.
While the tool is a nice quick way to tune, it's not good enough for perfect tuning. Also, the fact that the tuning is one time only bothers me. On a farm with more than 800 machines, it's not unusual to have a new or replaced data collector every week.
I would use this tool as a starting point for my tuning, and use a different method for implementing it. A simple import of a .reg file for the servers would do, and is easy to build into your installation procedure for new servers. The settings don't do anything on servers that are not data collectors, so there's not much harm in them.
If you want a more elegant solution a GPO can be used, which is my preferred option. In theory, you could apply different settings for different sites, but Citrix does not mention this option so it's probably not recommended. For your convenience, we created an .adm file which contains the relevant settings.