How to use the File Server Capacity Tool (FSCT) on Server 2012 R2

Hi, my name is Tom Ausburne and I recently wrote an article simplifying the instructions to use the ADTest tool and verifying that it will work on newer operating systems. The logical follow up to that article deals with another testing tool from Microsoft, the File Server Capacity Tool or (FSCT for short). This tools helps to simulate CIFS/SMB/SMB2 client requests while putting a load on your file servers. It is a bit newer than the ADTest tool and the supported operating systems are Windows Server 2008 and Windows Server 2008 R2. But those operating systems, while still in wide use today, aren’t the latest and the ones customers are asking about. So let’s dive in and see if this tool still works on Windows Server 2012 R2 and Windows 8.1. If you want to follow along you can download the tool here.

File Server Capacity Tool v1.2- (64 bit)
https://www.microsoft.com/en-us/download/details.aspx?id=27284

Once you download the tool you can extract it and you will get a folder named 64bit. Inside the folder are all the files you will need including an instruction document named FSCTStepbyStepGuide.doc. All of the steps in this blog were taken from that document and are based on running the tool with Active Directory. There are also instructions on running it in Windows Workgroups, non-Windows servers and against a singleton Windows cluster in the document if you want to test in those environments.

Here is my little Disclaimer: The included Step by Step Guide does a wonderful and thorough job of describing each scenario and uses standard Microsoft naming conventions. I set all of this up in my lab using my existing domains so the names will be different. I’ll point out where things need to be changed to work in your scenario so this should all be fairly quick and painless. I should also mention that this should be used in a testing or lab environment and not in production. You wouldn't want to bring down your production servers.

This exercise uses the following configuration:

image

DC3 – Domain Controller

FSCTServer – File Server to share files and it is this server’s performance that is tested

FSCTController – Used to synchronize test activity and collect test data

81Client – Client computer to generate the workload to stress the file server

Obviously this is a very simple setup and will not put a huge load on the server. The Step by Step guide shows that you can set up numerous clients over multiple networks which is preferable. But the purpose

of this article is to get you set up and running quickly and with very little pain. Once you have this working you can add and make things as complex as you like.

As in the previous article I am going to assume you know how to set up a basic Active Directory domain with servers and clients and won’t be covering that. So let’s get started.

Hardware Specifications

· Active Directory Infrastructure (at least 1 domain controller)

· 1 server computer running at least Windows Server 2008 R2 with sufficient disk space on one or more volumes designated for use in the test.
Note: These volumes will be formatted.

· 1 controller computer running at least Windows Server 2008 R2 with 1GB of available disk space

· 1 or more client computers running at least Windows 7 client with 1GB of available disk space

Machine Setup

The first thing to do is to copy the files contained in the 64bit folder (mentioned above) to a directory on each machine involved in the testing. To keep things simple I created a directory in the root of C: called FSCT.

clip_image001

Now comes the part where this article “should” make things easier. It’s always the syntax that makes things difficult for me and the lack of understandable examples. I hope I have resolved this for you. In the hopes of answering some what-if questions I have listed additional examples at the end of the article.

You need to prepare the domain controller, server, FSCT controller and the client(s) to work with FSCT. This makes sure that all of the users, files and directories have been created.

Prepare the Domain Controller

Open an elevated command prompt, change to the FSCT directory and use this command:

fsct prepare dc /users 10 /clients 81Client /password Password1

Where:

/users – Specify the number of users per client computer

/clients – Specify the names of the client computers (in my case it was just 81Client)
If you have several you would list them all separated by a comma.
Ex: 81Client,82Client,83Client,84Client

/password – Specify the password for all users (They all use the same password)

image

You should see users created in Active Directory.

image

Prepare the File Server

Open an elevated command prompt, change to the FSCT directory and use this command:

fsct prepare server /clients 81Client /password Password1 /users 10 /domain domain2.com /volumes D: /workload HomeFolders

Where:

/clients – Specify the names of the client computers (in my case it was just 81Client)
If you have several you would list them all separated by a comma.
Ex: 81Client,82Client,83Client,84Client

/password – Specify the password you used in the previous step

/users – Specify the number of users you used in the previous step

/domain – Specify the name of your domain (my domain was called domain2.com)

/volumes – Specify the list of volumes to be formatted during the prepare and cleanup phases. (For me there was just one volume D: ) If you have multiple volumes just separate them with a comma. Ex: D:,E:,F:,

/workload – Specify the workload name. FSCT includes one workload, HomeFolders, which simulates user activity when the server’s primary function is to store the user’s home directory.

image

This will format the volume specified and create an extensive folder structure that will be used for testing.

image

Prepare the Controller

Open an elevated command prompt, change to the FSCT directory and use this command:

fsct prepare controller

There are no required parameters for this command although the Step by Step guide shows them. You can specify a config file and logging options if you want. The parameters are detailed on page 39 of the Step by Step guide.

image

Prepare the Client(s)

Open an elevated command prompt, change to the FSCT directory and use this command:

fsct prepare client /server fsctserver /password Password1 /users 10 /domain domain2.com /server_ip 192.168.0.203

Where:

/server – Specify the name of the server you will be testing

/password – Specify the password you used in the previous steps

/users – Specify the number of users you used in the previous steps

/domain – Specify the name of your domain (my domain was called domain2.com)

/server_ip - Specify the IP address of the file server to be used by the client computer.

image

That’s it. That is how simple it is to set all this up. Of course like I said, this is only using 1 client and there is only one network and one volume, but you should be able to get the idea on how you can easily expand this setup. Now let’s do some testing.

Running the Test

On the Client(s)

Open an elevated command prompt, change to the FSCT directory and use this command:

fsct run client /controller fsctcontroller /server fsctserver /password Password1 /domain domain2.com

Where:

/controller – Specify the name of the controller

/server – Specify the name of the server you will be testing

/password – Specify the password you used in the previous steps

/domain – Specify the name of your domain (my domain was called domain2.com)

image

On the Controller

Open an elevated command prompt, change to the FSCT directory and use this command:

fsct run controller /server fsctserver /password Password1 /volumes D: /clients 81Client /min_users 2 /max_users 10 /step 2 /duration 360 /workload HomeFolders

Where:

/server – Specify the name of the server you will be testing

/password – Specify the password you used in the previous steps

/volumes – Specify the list of volumes to be formatted during the prepare and cleanup phases. (For me there was just one volume D: ) If you have multiple volumes just separate them with a comma. Ex: D:,E:,F:,

/clients – Specify the names of the client computers (in my case it was just 81Client)
If you have several you would list them all separated by a comma.
Ex: 81Client,82Client,83Client,84Client

/min_users - Specify the minimum number of users to be used during the test.

/max_users - Specify the maximum number of users to be used during the test.
(This number should be less than or equal to the number of users you created)

/step - This value is how many users the test will increase by with each iteration between the values for min_users and max_users.

/duration - Specify the duration, in seconds, of a single iteration of the test. If this value is set to 0 (zero), the test will finish when all high priority scenarios are complete. Also, if this value is set to 0 (zero), the profile configuration file must contain a maximum number of iterations to run, or the test will run indefinitely.

/workload – Specify the workload name. FSCT includes one workload, HomeFolders, which simulates user activity when the server’s primary function is to store the user’s home directory.

image

While the test is running you can look at the Resource Monitor (or Perfmon Counters) to see if everything is working as expected.

image

Cleaning Things Up

After testing, the cleanup process deletes users, files, and directories from the server, controller, and client computers.

Cleanup is required when:

· All your testing is finished

· You have made configuration changes to the server, controller, clients, volumes, or users; or the test failed or aborted during a test run.

Cleaning the File Server

Open an elevated command prompt, change to the FSCT directory and use this command:

fsct cleanup server /clients 81Client /users 10 /volumes D: /domain domain2.com

Where:

/clients – Specify the names of the client computers (in my case it was just 81Client)
If you have several you would list them all separated by a comma.
Ex: 81Client,82Client,83Client,84Client

/users – Specify the number of users you used in your testing

/volumes – Specify the list of volumes to be formatted during the prepare and cleanup phases. (For me there was just one volume D: ) If you have multiple volumes just separate them with a comma. Ex: D:,E:,F:,

/domain – Specify the name of your domain (my domain was called domain2.com)

image

Cleaning the Controller

Open an elevated command prompt, change to the FSCT directory and use this command:

fsct cleanup controller /backup c:\fsct_backup

Where:

/backup – The folder you want to back up the collected data to

image

Cleaning the Client

Open an elevated command prompt, change to the FSCT directory and use this command:

fsct cleanup client /users 10 /domain domain2.com

Where:

/users – Specify the number of users you used in your testing

/domain – Specify the name of your domain (my domain was called domain2.com)

image

Cleaning the Domain Controller

This is a manual but simple process. Just delete all the users you created for this test. That’s all there is to clean up. You can start over and redo all the steps again with different settings.

Reviewing the FSCT Test Results

After running the test, the performance results will be stored on the Controller computer. A sample results file can be seen in the FSCT Step by Step Guide.

Final Thoughts

As I mentioned earlier, this post doesn’t walk you through all the different scenarios that are possible or even set things up to put a load on the server. The main purpose was to show how easy this is to set up and get running. A few extra clients and a few different settings and you could be on your way to stressing a server to its limits. And isn’t that the whole purpose of this tool?

Oh, I mentioned earlier that for those of you who want to see what some expanded syntax looks like here are a few examples:

If you want to create 1000 users and use 10 client computers it would look like this:

On the DC:

fsct prepare dc /users 1000 /clients Client1,Client2,Client3,Client4,Client5,Client6,Client7,Client8,Client9,Client10 /password Password1

image

If you want to create a folder structure for 1000 users on two different volumes for 10 clients it would look like this:

On the Server:

fsct prepare server /clients Client1,Client2,Client3,Client4,Client5,Client6,Client7,Client8,Client9,Client10 /password Password1 /users 1000 /domain domain2.com /volumes D:,F: /workload HomeFolders

image

If you want the client to prepare to run the test with 1000 users against the server it would look like this:

On the Server:

fsct prepare client /server fsctserver /password Password1 /users 1000 / domain domain2.com /server_ip 192.168.0.203

Note: A separate TCP connection is required for each user (the redirector checks the server name and will collapse multiple connections into one if it can). FSCT edits the host’s file (%windir%\system32\drivers\etc\hosts), and then adds a separate entry for each user. You must run “fsct cleanup” before you run “fsct prepare clients”. If not, the host file may not contain all of the correct information, and subsequent runs are likely to fail with server access errors.

I hope this post will make using this tool much easier. I’m a big fan of the “do these things in this order and by the way here are the screenshots of what it looks like” method.

Tom Aushburne