Print

Technical Articles

Concurrent user count
[ Name: kyh, Date: 07-10-22 13:24:12 ] ( en ja )

Do you know how many users are in your webs system at this moment?

How many people are using the website at any given moment? Concurrent User is important information for every website administrators and operations manager because the capacity of a system can be measured in terms of maximum concurrent users, at which point system performance begins to degrade noticeably if more users browse the website. Measuring concurrent user accurately and analyzing relationship between concurrent user count and system performance is necessary to ensure high-level service to users. If not measured or measured incorrectly, the website may suffer serious performance issue once the capacity limit is exceeded. Consequence is that many users may experience performance problem; by the time the system capacity is increased to meet the user demand, the website may have lost many of potential customer and market exposure as well as damage to brand image and reputation.

So how do we count the Concurrent Users? The traditional method has been to count the number of concurrent user in Client/Server environment by counting the established TCP/IP connections. However, HTTP protocol doesn’t always maintain the connection between the user’s computer and the server. It sustains its connection only when it responds to the user’s request. Therefore, the number of concurrent user can not be counted exactly when the number of TCP/IP connections is used. Also, if the concurrent user is counted on connection bases, the weight of one user vs. another cannot be quantified. If one user visits 10 pages during one minute and the other visits only 2 pages per minute, the traditional methods cannot distinguish between the two; there are simply two concurrent users. There is also the matter of session timeout setting for each website. A user may remain as concurrent user as long as the web browser is left open and the session timeout limit has not been reached. If a user leaves his/her browser open and leaves (which happen frequently) the site will continue to see that person as a concurrent user until the timeout setting limit is reached.

A part of Performance Theory developed by JenniferSoft’s leading engineers is a revolutionary approach to calculating the number of concurrent users.

Let’s look at a scenario of a person entering the website, browse around then exit.

The time between the first and second click is defined as the “Request Interval” and the time from the first visit to the last click is defined as the “Visit Time”. In this scenario, you can confirm that 6 users (blues dots) are actively using the system since their activity line crosses the specific point of time, sampled. 3 users (green dots) did not user the system during the sampled time as their activity line did not cross the specific time and one user (red dots) did not use the system frequently enough to be qualified as an active user because of the session timeout rule.

Now, let’s apply the concept from Little’s Law into the equation.

Concurrent User can be calculating using throughput, response time, and think time, which can be quantified accurately and easily in any web system.

It has been proven mathematically that the estimated value converges to the accurate value as the system throughput gets higher in control tests. In addition, after conducting numerous simulations by using web performance testing tools as well as performing tests on the existing operating systems, the accuracy of the formula has been verified. It is undesirable to count the number of concurrent user by using the number of javax.servlet.http.HttpSession offered by WAS. Because the HTTP Session has a feature of the Session timeout, a user may be shown as actively using the system for a time being when the user is in fact not actively using the website at all. Due to this, the HTTP Session keeps counting its number during the Session timeout even though a visitor has left the site. Therefore, the number of HTTP sessions is always more than concurrent users count. Here is an example. At a company, 500 people are gathered in a big hall and connected to the same system. In this case, the number of concurrent user and the number of HTTP Session objects are the same. However, when the 500 users leave the hall during lunch time, the number of concurrent user monitored by Jennifer will be 0 while that of HTTP Session objects will still remain the same (500) until the count is refreshed by session timeout.

Sung Jo Kim Director of Engineering