In part 5 I figured out our peak load against our existing infrastructure. In this part I’m going to test against a Storefront server to see if it can handle the baseline load.
This is the counters used for PNA launches:
The loads to test are:
|Peak Rates||(in per second)|
|PNA Logon||PNA App Launches||Web Logon||Web LaunchICA||Connections per second|
I am going to use WCAT to test PNA as WCAT is fairly easy to configure. From the counters we can easily target “ICA Launches Calls / second” and “Find all resources Calls / second” (and divide by ~2.5) to get to our PNA load count.
Now, I can test the PNA portion with WCAT, which is good because it can maintain a nice, steady rate. Web Logon’s and launches though, require a PowerShell script because of some cookie manipulation.
Testing a single Web Interface server, I tested just PNA app launches (20 per second) and our Web Interface server was unable to maintain that rate. The maxmium number a single Web Interface server (4vCPU 12GB RAM) was ~15 application launches per second. At that point my Powershell script was getting errors during its requests.
Since we load balance we could sustain ~30 PNA app launches per second with Web Interface. How does Storefront do? Can a single server maintain our peak load?
Ok, first off, I have to say I love it when the math adds up.
I was hoping for an average of 8 PNA app launches (ICA Launch Calls / second) and I got 8.6, and I was hoping for ~19 “Find All resources Calls / second” and I got 17.7. So I believe I’m pretty close to simulating my real peak load traffic.
So we can see the load testing definitely put an impact on Storefront server. We had some peaks, which varied between requesting icons and requesting the ICA file. Getting the Config.xml file didn’t move the needle neither did find PRELAUNCH applications. I’m not entirely sure why we have some spikes but overall I think I’m pretty satisfied with this performance.
When does Storefront break (in my environment)?
I set WCAT to do 1000 connections. At 32 connections per second my response time was starting to increase dramatically. This was with a 4vCPU system.
Monitoring my XML brokers showed they were not breaking a sweat. So the bottle neck has to be Storefront. Looking at my CPU graphs showed this to be a CPU bottle neck.
So what happens if I up the vCPU to 8? When does the bottleneck push to the brokers or no longer become the CPU?
At 8vCPU StoreFront scaled nearly linearly. At 32 connections per second It was handling requests at around 7 seconds. At 38 connections per second though, it was starting to choke, going at about 10 seconds per request.
And this is the last up I can do. I moved the StoreFront up to 16 vCPU with a whole host for itself to prevent CPU oversubscription.
This configuration enabled us to handle 64 connections per second before consistently breaking the 10 second limit.
If we set a target of a “fail” when the response time exceeds 10 seconds this is what my maximum number of requests can be per vCPU:
So Storefront seems to scale pretty well with CPU, with the biggest gain going from 4vCPU to 8vCPU. At 4vCPU a single StoreFront server should be able to handle our entire peak load, albeit barely. At 8vCPU a single server should have more than enough capacity to handle almost double our peak loading.