1. What is Server Monitoring?
Server monitoring lets you get real-time internal statistics from the servers that you load test. By internal statistics, we mean things like CPU usage, number of cache hits in the database, number of open connections, amount of free memory, etc. Server monitors are configured in the Monitors bottom panel, and the statistics are integrated into the Statistics Tab,
2. Why you need it
2.1. The short version
Having server statistics side-by-side with client statistics (e.g. TPS and TimeTaken) makes it much easier to troubleshoot performance issues.
2.2. Some examples
Say that you have created a few realistic load tests in LoadUI. The Statistics Workbench gives you all the client/user statistics that you need. Now what if:
- The client experience is not good enough for all scenarios.
- The client experience is acceptable now, but demand will increase in the future.
- The client experience is great in the first hours, but gets horrible in the long run.
- The client experience does meet the response time requirements for all scenarios, but not the throughput requirements.
- The client experience is ok, but compared to the baseline that you created two months ago, it's significantally worse for no apparent reason.
- The client experience seems good, but fluctuates in such a way that it makes you suspicious that something is not right with the server.
- The client experience is good enough, but as we all know, fractions of seconds makes a difference for users in the long run — some competitors are faster.
What you'd really like then is to know what's happening on the server. Preferably in the very same Statistics Workbench, with all that comes along (auto-saving, comparisons, reporting, flexible charts, assertions etc.). This is why you need Server Monitoring.
2.3. A Metaphor
To not load test your application/service is like engineering a car without ever testing its performance — You probably know this already since you're reading this.
Now, load testing without server monitoring is like engineering a car and testing its performance — but without looking at things like RPM, Fuel Consumption, Oil temperature and Sparkplug timing.