What are concurrent users?

I found that there is no clear definition of the number of concurrent users a system must support.

When a system is used by a large group of users, not all users are active all the time. For instance, if your organization has 10,000 employees, not everyone is in the office working every day. People have holidays, or can be sick. And if they are in the office, they are not behind their desks all the time, as they can be in meetings, standing at the coffee machine, etc. And when they are at their desk, using the system, they are not always active using the system’s back-end systems. For instance, when they are reading an article fetched from the internet, only the fetching of the document puts a load on the system. The time the user is reading the text, does not put a load on the system.

Consider the following example.

Total number of employees 10000
Only 80% is at the office 8000
 70% of their time is spent at their desk  5600
 At their desk, they use the system 70% of the time  3920

 In that time, they only perform actions that put a
load on the infrastructure for 5% of the time

 196

This means that during the day, on average, of all employees, only 196 people are actively using the infrastructure at any given moment.

As an alternative, we can use the ratio between usage of the system and “thinking time”. In our example, the percentage thinking time is 100% - 10000/196 = 98%.

A further breakdown could show how the system is used:

Action Example
Load file  Open file in an office application (like Excel or Word)
Save file Save document from an office application
Browse files Open file explorer
Send HTTP request Push a button in a browser-based application, leading to sending data, or use AJAX calls
Receive HTTP data Receive data from a webserver when using a browser-based application, or use AJAX calls
Send data to the Internet Push a button on an internet page, use AJAX calls or send data using protocols like FTP
Receive data from the Internet Receive a web page from the internet, use AJAX calls or receive data using protocols like FTP
Send email/calendar Send a typed email to the email server, or update calendar items
Receive email/calendar updates Receive new emails from the email server
Send VDI/SBC data In a SBC or VDI environment, send keyboard and mouse input to the server
Receive VDI/SBC data In a SBC or VDI environment, receive screen output from the server
Send and receive data from DNS Use DNS to resolve IP addresses
Send and receive data from AD Use AD to handle login/logout or to check credentials
Other Other uses of the infrastructure

Using such a categorization, the actual load on the infrastructure can be calculated, if we know how the system is setup, how the actions relate to a certain load and what a typical user’s behavior is. Not all users are alike. By observing groups of people, their typical behavior can be mapped to the defined categories over time. For instance, a group called secretaries will typically:

  • Open 25 existing Word documents
  • Save 40 Word documents (including new documents)
  • Send 25 emails
  • Receive 25 emails

Based on these numbers, and with the insight in the setup of the system, the actual load on the various parts of the infrastructure can be calculated. This calculation can then be used to shape performance tests.


This entry was posted on Friday 23 January 2015

Earlier articles

Infrastructure as code

My Book

DevOps for infrastructure

Infrastructure as a Service (IaaS)

(Hyper) Converged Infrastructure

Object storage

Software Defined Networking (SDN) and Network Function Virtualization (NFV)

Software Defined Storage (SDS)

What's the point of using Docker containers?

Identity and Access Management

Using user profiles to determine infrastructure load

Public wireless networks

Supercomputer architecture

Desktop virtualization

Stakeholder management

x86 platform architecture

Midrange systems architecture

Mainframe Architecture

Software Defined Data Center - SDDC

The Virtualization Model

What are concurrent users?

Performance and availability monitoring in levels

UX/UI has no business rules

Technical debt: a time related issue

Solution shaping workshops

Architecture life cycle

Project managers and architects

Using ArchiMate for describing infrastructures

Kruchten’s 4+1 views for solution architecture

The SEI stack of solution architecture frameworks

TOGAF and infrastructure architecture

The Zachman framework

An introduction to architecture frameworks

How to handle a Distributed Denial of Service (DDoS) attack

Architecture Principles

Views and viewpoints explained

Stakeholders and their concerns

Skills of a solution architect architect

Solution architects versus enterprise architects

Definition of IT Architecture

What is Big Data?

How to make your IT "Greener"

What is Cloud computing and IaaS?

Purchasing of IT infrastructure technologies and services

IDS/IPS systems

IP Protocol (IPv4) classes and subnets

Infrastructure Architecture - Course materials

Introduction to Bring Your Own Device (BYOD)

IT Infrastructure Architecture model

Fire prevention in the datacenter

Where to build your datacenter

Availability - Fall-back, hot site, warm site

Reliabilty of infrastructure components

Human factors in availability of systems

Business Continuity Management (BCM) and Disaster Recovery Plan (DRP)

Performance - Design for use

Performance concepts - Load balancing

Performance concepts - Scaling

Performance concept - Caching

Perceived performance

Ethical hacking

The first computers

Open group ITAC /Open CA Certification

Sjaak Laan


Recommended links

Ruth Malan
Gaudi site
Byelex
XR Magazine
Esther Barthel's site on virtualization


Feeds

 
XML: RSS Feed 
XML: Atom Feed 


Disclaimer

The postings on this site are my opinions and do not necessarily represent CGI’s strategies, views or opinions.

 

Copyright Sjaak Laan