Articles in this section

Stress Testing the HireTrack NX server

The HireTrack NX Server is powerful and very efficient, but to perform well it needs to run on a File Server machine that is also fast and efficient and not under too much stress from demands made on it by other applications. If your file server is sub-optimal you may experience poor performance in HireTrack NX and should this occur the first port of call should be to take a look at the file server and do some tests that check how well the the NX Server performs with a simulation of various number of users. To do this we have written our "Server Stress Test" application which can be downloaded from here.

There is no installation, just unzip the application and run on a workstation or remote desktop that normally runs HireTrack NX.

IMPORTANT!

We don't recommend that you run this tool on the NX Server machine UNLESS this is also your remote desktop machine (Using the same machine for the NX server & Clients is not usually recommend).

You should not run this application while other users are using HireTrack NX: it is designed to stress the NX Server and it's host and if users are also running HireTrack then i) they will suffer unsatisfactory performance, and ii) the results of the test will be distorted.

Depending on what options you select on the test app, it can take some time to run, anything between 3 mins and several hours!!!

Running

Once the application is run, you will be presented with this screen:

In the Server IP box, enter the IP address of your HireTrack NX server. The Server Port & Server Name will already contain the default values for running the programme on the file server; if you are running from a workstation (recommended) change them accordingly (you would normally only set the IP address and you can find this out on the NX Server's web portal if you don't know it

This will connect to the NX Server and the Selected Alias drop down will be populated.

Select an Alias. The alias is simply used as a location to store the temporary tables used by the test app. It doesn't matter if you select a live or training database, no HireTrack NX data is used. If you have aliases stored on different disks, then you may want to run the app several times, once per disk.

Next set the Max No. Clients - this is how many active users you want to test with. By active users we mean users actively using HireTrack NX, rather than just being logged in. There's usually some diversity in how your HireTrack users interact with HireTrack, so even though you might have 10 users logged in, you might have 2 prepping kit, scanning barcodes every couple of minutes as the kit is prepped, 2 returning kit via general returns, scanning barcodes continuously, someone looking at this weeks invoices, a couple of people quoting jobs and 3 people on the phone or grabbing a coffee. So from a diversity point of view, this is probably equivalent to 3 or 4 active users.

Once done, press the Run Test button.

You will get a warning explaining that this will lock up the server for a period of time. The duration given is an approximation based on an average server, yours could take longer.

Click Yes and the test will start.

The app will carry out four tests for each client a number of times. If you selected 5 for the Max no Clients, the tests will firstly be run simulating one client, then they will run again simulating two clients, then three, four & finally five. After each set of clients the scores will be displayed before the next pass starts.

The tests carried out are:

Processor

Disk Writes

Disk Reads

Database Locking

Whilst a test is taking place the application will give the impression that it has locked up. Do not worry about this.

Results

Once the first round of tests has completed, the Score will be displayed. A score lower than 5 will be displayed in Red and this indicates that the server's performance with just one client is lower than acceptable. A score of 5 or more indicates that the server is performing within spec for one user.The graph will update after each round of tests.

When all the tests have been completed the graph will look something like this.

The score of 3 indicates that your server machine is below par, and the graph shows how much more the machine struggles as the number of users increases.

Related articles

Comments

It seems as though the Processor test is what is bringing my score down. Its a quad core at 2.6 GHz though, and when the test app is running full speed I only see 40% CPU being used and lots of RAM still available.

The processor thing is interesting (I'm assuming you're talking about the server). As it's a quad core, then a single client test will use just one core, so should use 1 core 100% or the whole processor 25%. This would mean that you could run four queries/clients simultaneously and get the same experience from a processor POV.

The memory makes no difference from the performance measuring point of view - the extra memory would be normally used to cache disk reads, but the read speed of the disk is so much higher than the write speed of the disk that it doesn't contribute to the overall score.

From a score POV, we develop here using a machine with a score of 5, but we test on a machine with a score of 3. so although 5+ is ideal, lower may also be acceptable. It's a difficult thing to judge too as someone quoting will probably be happier with a lower scoring server than someone that's trying to push 1000's of barcodes through the system very quickly.

Thanks David. I see what you are saying. I had always looked at the overall processing (that 40% or less) and thought I was good since I saw plenty of headroom. But it is true that if it works as one client per processor, then it is the performance of each individual core that matters. In my case, this machine is getting a little old, and that 2.6 GHz is when turbo boost is applied. It could be time to start looking into something new.

That said, I never really saw any performance issues with the NX Server, and we are generally running 6 or 7 clients simultaneously (along with other network based software as well). Maybe it could be slight bit more snappy? Hard to say. But if I had not scored a 3, I wouldn't have thought anything of it.

Is Hiretrack NX a multithreaded application? I'm shopping for servers and am trying to determine if I should go with a processor that has a higher clock speed, or more cores. It sounds like since the tester app is only using a single core for the test, then its likely a single threaded app that would benefit from a higher clock speed per core rather than a whole bunch of cores that are slower. Is that correct? I'm basically comparing the Intel Xeon Gold 6134 chip to the Xeon Gold 6140 chip. It would seem that the 6140 scores much better in a benchmark test, but the 6134 is clocked much higher and therefore maybe better for an app such as Hiretrack. Any thoughts or opinions?

We bought an entirely new server, and I concentrated on the best performing processor, drives, memory, and cache that I could within a reasonable budget. The drives on my old server still performed reasonably well, but the truth was that the old server is nearly 9 years old, and David's app exposed the fact that alot of that internal hardware is outdated by today's standards. The number of processing cores, buss speeds, memory speeds, and cache sizes were where my old server had laughable specs compared to today's machines. I did upgrade the drives with the new server, but the jump from the 3 to the 9 in the server test app was definitely due to the rest of the internals.

As for seeing a perceived performance boost, I will get back to you on that Andrew. I have transferred just about everything else besides Hiretrack over to the new server. Hiretrack will happen tonight. We do see a definite improvement in all of our other network based software packages like Quickbooks though, so I am optimistic about seeing an improvement with HT as well. I have installed the NX server and a test database though, so that is how I was able to score the 9 with the test app.

We have 9 Hiretrack licenses, so I ran my test for up to 9 concurrent users. I'm sure it would score well beyond that too. I have 20 cores in the processor, so I'd probably score the same until I got to over 20 users. They would start sharing the processor cores at that time. An 8 is good, so it sounds like your server is still healthy.

As for the email, ours are all direct imap accounts so our server isn't involved. You must be running Exchange or something.

Yes, the score is always based on one user - this is the best performance a user can expect. If that's below 5, then the experience for even one user will be below par.

The values on the Y axis are time taken to complete the task with the number of users running it simultaneously. So for the Processor test the query does 2 ^ 30 (i.e 2 x 2 x 2 x 2 ..25 more... x 2 ) 5 million times.If the test is for two users, then both user will be trying to do this at the same time, etc. So this measures a combination of how fast the processor can "do the maths" and how well it manages the multithreading.

For a genuine multi processor machine I'd expect the time taken by pairs of tests to be the same e.g 1 user or 2 user should take the same time, then as multi threads/cores get added in, I'd expect some jump at the core change level, e.g for a 4 core processor, there will be an increase in time taken from 1 to 2 to 3 to 4 users and then a jump in time taken for the 5th user etc.

Of course the tests are done on simultaneous users - that is users acting on the database as the same time, which isn't the same a licensed users. User 1 opening an equipment list and then a second later User 2 opening an equipment list, is probably, in database terms, just one user's worth of stress, whereas 4 users scanning barcodes simultaneously is quite probably 4 users worth of stress.

I've just uploaded a new build of the app (1.0.0.20) that now calculates the Score for each iteration, so should hopefully give a better indication of how your server will cope as it's loaded with additional simultaneous users. I'd be interested in some feedback.

Very interesting app and results, thanks. I can see that the server side multi threading is working very well as the number of cores at max usage matches the number of users simulated. So far I haven't got past the point of more users than cores, need to wait for more time to test.

Is there anyway you add functionality to start at say 15 simulated users and then max out at 25 etc.