A. Microsoft will soon offer the new File Server Capacity Tool (FSCT) for this purpose, and as of October 2009, it’s already available as a release candidate at connect.microsoft.com. The tool isn’t a planning tool—those would typically let you say how many users, shares, and so on you need to support and then generate a server specification. This tool runs on your file server and stresses it with emulated workloads, then tells you what capacity the file server can support in terms of maximum users, throughput, and response time, and tells you where the bottlenecks are. FSCT is a command line utility without a GUI, so it’s very much targeted at IT professionals and solution providers.

To use the tool, you need the server that’s being tested, a client computer, and a computer acting as the controller. Ideally, you want many client computers, to ensure you’re really taxing the server—Microsoft has performed testing with up to 120 clients. You also need an extra network that’s used between the clients and the controller computer to coordinate all the file server requests. Because you need this extra network, each client requires two NICs, one connected to the normal network to make requests to the server and the other connected to the controller network. The controller traffic uses ports 5000 and 5001.

FSCT uses “scenarios” for testing. Scenarios are sets of actions that each client will perform. They’re defined in XML files and implemented via a DLL. Microsoft provides a single scenario with FSCT, but vendors can create new ones for their products.

You need to install FSCT on all machines that are part of the test, including the server, controller, and clients. The FSCT download includes detailed documentation that provides the commands that need to be run on the controller, server, and clients. The commands follow this structure:

  1. Run the FSCT prepare server command on the server with the required parameters, which include the clients, password, simulated number of users, and the scenario.
  2. Run the FSCT prepare controller command on the controller.
  3. Run the FSCT prepare client command on the clients.
  4. Run the FSCT run client command on the clients.
  5. Run the FSCT run controller command on the controller.

Once all the tests have run, run the FSCT cleanup command on the server, controller and clients.

A text file is created once the testing is completed that you can examine to get the output of the capacity test. The file shows when the server became overloaded and other performance metrics. The test also creates a more detailed XML report, and you can import and manipulate the XML report with other tools.

To summarize, FSCT is a great tool, but it requires a significant amount of infrastructure and planning to get running. It allows you to get very good information about the capabilities of a file server. The network card requirements may seem like a hindrance, but if you virtualize the clients and the coordinator, it’s really not a big deal to create two virtual network interfaces and a local network at the virtualization layer for the coordinator traffic.

Related Reading:

Check out hundreds more useful Q&As like this in John Savill's FAQ for Windows. Also, watch instructional videos made by John at ITTV.net.