Just lately, I have had a number of requests to provide hardware sizings for Rational Performance Tester (RPT) along the line of this spec should support “x” users of “y” protocol.
Sounds relatively simple?
The issue around sizing is that frequently we don’t know the number of users, the type of protocol being tested, the transactional throughput or the complexity of the application being tested. All of these will play a factor in the number of load injector machines required to generate the load.
The following isn’t an answer; it just describes the type of things that should be considered.
Depending on the protocol being tested, the footprint of the ROT virtual tester will vary. For example, HTTP is likely to be somewhere in the range of 1 – 5MB, other protocols will be more. The reason for such a wide range is that it will depend on the level of logging that is taking place by the performance tool and the size of the pages being downloaded by the virtual user, for instance, a page containing lots of large images will increase the virtual testers footprint compared to a basic page with some lightweight HTML content.
Based on the rough estimate of 5MB per virtual user, if we assume a typical load injector machine will have 2GB RAM, we need to allow 400 – 500MB for the operating system any software that may be running on it. This leaves 1.5GB remaining. Typical recommendations are that the CPU and memory should not exceed 70% – 80% usage as the injector machine should be able to comfortably generate the load; if the injector request is overloaded it will struggle and skew any results.
The same is also true for the network card, if the number of requests exceed what can physically be placed onto the network, then requests will start stacking up and the network card will be the cause of a bottleneck, again skewing the results.
Based on 70% usage, this allows 1050MB to be used for the generation of the virtual users. Based on the assumption of 5MB per user; this works out at approximately 210 virtual users on this per injector machine.
This example is very much on the overdramatic side and is purely to highlight what needs to be considered. In reality, this machine may be able to generate in excess of 700 users. The best approach is to derive a realistic figure based on knowledge of the application being tested and fine tune this estimate as part of a sizing exercise
This is a real HTTP example…
Usually RPT uses less than 2MB. It is safe to calculate with 0.5MB
– 8 x SuSE Linux Enterprise 9 each with 2 Xeons 3.0GHz and 4GB RAM
– With 4500 users we achieved 70 transactions per second at all. The load was below 25% on each agent.
– With 2000 users the load was below 10%.
SOA and Siebel should be similar as they are also based on the HTTP protocol. Citrix and SAP are more costly as in order to generate the protocol conversation and interpret the results, RPT starts multiple sessions of the host application, and this is comparable to starting 50 Citrix instances on a single machine. We normally estimate 50 – 70 user per box in these situations.
Hope this information is useful.