Using user profiles to determine infrastructure load
To be able to predict the load a new software system will pose on the infrastructure, and to be able to create representative test scripts before the software is built, user profiling can be used.
In order to predict the load on the infrastructure, it is important to have a good indication of the future usage of the system. This can be done by defining a number of typical user groups of the new system (also known as personas) and by creating a list of the tasks they will perform on the new system.
First a list of personas must be defined – preferably less than ten personas. Representatives of these persona groups must be interviewed to understand how they will use the new system. A list can be compiled with the main tasks (like login, start the application, open a document, create a report, etc.).
For each of these tasks, an estimation can be made on how, and how often they will use the system’s functionality to perform the task. Based on these estimations, and the number of users the personas represent, a calculation can be made on how often each system task is used in a given time frame, and how these relate to infrastructure tasks. A very simplified example is given below:
|Persona||Number of users per persona||System task||Infrastructure task||Frequency|
|Data entry officer||100||Start application||Read 100 MB data from SAN||Once a day|
|Data entry officer||100||Start application||Transport 100 MB data to workstation||Once a day|
|Data entry officer||100||Enter new data||Transport 50 KB data from workstation to server||40 per hour|
|Data entry officer||100||Enter new data||Store 50 KB data to SAN||40 per hour|
|Data entry officer||100||Change existing data||Read 50 KB data from SAN||10 per hour|
|Data entry officer||100||Change existing data||Transport 50 KB data from server to workstation||10 per hour|
|Data entry officer||100||Change existing data||Transport 50 KB data from workstation to server||10 per hour|
|Data entry officer||100||Change existing data||Store 50 KB data to SAN||10 per hour|
|Data entry officer||100||Close application||Transport 500 KB configuration data from workstation to server||Once a day|
|Data entry officer||100||Close application||Store 500 KB data to SAN||Once a day|
This leads to the following profile for this persona group:
||Per day||Per second|
|Data transport from server to workstation (KB)||10,400,000||361.1|
|Data transport from workstation to server (KB)||2,050,000||71.2|
|Data read from SAN (KB)||10,400,000||361.1|
|Data written to SAN (KB)||2,050,000||71.2|
Of course, in practice, this exercise is much more complicated. There might be many personas, complex tasks, tasks are spread in time, or show hotspots (like starting the application or logging in, which typically happens at the start of the day), the system can have background processes running, and the load on the system for a specific task can be very hard to predict.
But as this very simplified example shows, user profiles can help determining the load on various parts of the infrastructure, even before the application software is written.
This entry was posted on Sunday 21 February 2016