Become a Columnist Microsoft Exchange Site Microsoft Support SiteMSDN Exchange Site

   

Subscribe to OutlookExchange
Anderson Patricio
Ann Mc Donough
Bob Spurzem
Brian Veal
Catherine Creary
Cherry Beado
Colin Janssen
Collins Timothy Mutesaria
Drew Nicholson
Fred Volking
Glen Scales
Goran Husman
Guy Thomas
Henrik Walther
Jason Sherry
Jayme Bowers
John Young
Joyce Tang
Justin Braun
Konstantin Zheludev
Kristina Waters
Kuang Zhang
Mahmoud Magdy
Martin Tuip
Michael Dong
Michele Deo
Mitch Tulloch
Nicolas Blank
Pavel Nagaev
Ragnar Harper
Ricardo Silva
Richard Wakeman
Russ Iuliano
Santhosh Hanumanthappa
Steve Bryant
Steve Craig
Todd Walker
Tracey J. Rosenblath
 
 

The Scalability of Digital Dashboards

Steve Bryant Page 1 | Page 2 | Page 3 | Page 4

Dashboard “Nugget” Window Changes

The client DLL that handles the presentation of the Dashboard is hard coded to alert the SQL database of changes in “nugget” windows.

Unfortunately, nothing can be done within the Presentation layer of the application to remedy this. Instead, we must prepare for such changes and scale accordingly. We also need to discourage this practice by the user community.

This change has a double-impact on the Dashboard Web Server. First, the same traffic as listed above is used to refresh the view after IE has been launched for the first time after a change. The backend server is equally affected as shown in the statistics listed on later pages. Second, the processes it takes to notify the Portal Subscription Server is also overhead to this process.

To determine the impact of such a load, we first need to determine the number of times we expect this setting to be used. In addition, we need to consider that the first window change on a dashboard creates twice as much server load as subsequent changes. Using random polls in various user communities, we estimate that each person will minimize or maximize two Web Parts per day. This number is probably high, we had to start somewhere!

Users 1 2 5 20 50 60
Processors 3 4 8 32 80 96
Web Methods 2 4 5 20 52 61
Cache Refresh-bytes 8,192 16,384 40,960 163,840 409,600 491,520

Performance statistics show that 60 simultaneous changes to the window size pushed the test machine to nearly 100% processor utilization. Based upon these numbers, we can apply some math:

The longest an update string lasted was one second even under heavy load. Based upon these numbers and the tests taken with Microsoft Web Application Stress tools, the test server can handle 3600 “nugget” changes per minute based upon a one1 second update. 60 Seconds * Simultaneous Users = 3600 simultaneous changes per minute. This allows 216,000 nugget changes per hour and 1,728,000 per working day. Divide this number by the number allotted per user (two) and you can determine that this server will support ~800,000 users based on the requirements of two changes per day.

This math was based upon the test server running a single Pentium II-500Mhz processor. Simultaneous users would scale up based upon the processor on the Portal Subscription Server:

PII-500Mhz P-Pro PIII-500Mhz PIII-500Mhz PIII-500Mhz
60 Simultaneous Updates 72 Simultaneous Updates 96 Simultaneous Updates 216 Simultaneous Updates 252 Simultaneous Updates

Again, based on the numbers and the expected updates per user, a dual or quad PIII should handle most network in regards to nugget changes.

Client Content Change

This portion of the application tiers is also unavoidable. The clients must execute these changes on a SQL server when SQL Dashboard configurations are involved. This process begins when the user clicks the Content icon to launch the menu as indicated to the right. This screen allows the user to add or remove web parts from the Dashboard.

Statistics on this matter are much worse, but we expect the users to change these settings much less. These figures represent the hardest any server gets hit during any part of the dashboard process. In this scenario, the store.vbs on the local machine creates DAV calls to the Portal Subscription Server for access to the SQL database:

Users 1 2 5 6
Processor 13 34 78 93
Web Methods 6 9 25 29


Performance statistics show that 6 simultaneous changes to the window size pushed the test machine to nearly 100% processor utilization. Based upon these numbers, we can apply some math:

The longest an update string lasted was one second even under heavy load. Based upon these numbers and the tests taken with Microsoft Web Application Stress tools, the test server can handle 360 content changes per minute based upon a 1 second update. 60 Seconds * Simultaneous Users = 360 simultaneous changes per minute. This allows 21,600 content changes per hour and 172,800 content changes per working day. Divide this number by the number allowed per user and you can determine that this server will support ~170,000 users based on the requirements of one change per day.

This math was based upon the test server running a single Pentium II-500Mhz processor. Simultaneous users would scale up based upon the processor on the Portal Subscription Server:

PII-500Mhz P-Pro PIII-500Mhz PIII-500Mhz PIII-500Mhz
6 Simultaneous Updates 8 Simultaneous Updates 10 Simultaneous Updates 22 Simultaneous Updates 26 Simultaneous Updates


In each of these performance charts, remember that the information is assuming that the above listed users are executing the same process at the exact same time. Also remember that the only thing affected by delays will be the user session during time of update. SQL commands will stack as well as the IIS calls. Users should see no errors during such delays. For example, if 500 people update their content at the same time, the SQL server will run at 100% processor until each SQL and IIS request is fulfilled.

Portal Subscription Server

This server represents the standard SQL-based Dashboard server. As we mentioned earlier, this server is normally affected by Dashboard refreshes. In actuality, this server is affected by three different Dashboard Activities:

Client Dashboard Refresh

ECMS has modified the factory and store engines to reduce server impact during dashboard loads and refreshes. The following chart details the specific activity of the Portal Subscription Server during such refreshes and dashboard loads (from cache.)

As you can see, the only activity on the server is the expected load created as a result of simulating hundreds of users on the LAN segment. The server itself is not touched by such requests. Based on the processing required to handle immense levels of network traffic, we estimate that a single backend server can support tens of thousands of refreshes. If the Portal Subscription Server was placed on another LAN segment, there would be no limit to the number of refreshes the server could handle.

Dashboard “Nugget” Window Changes

The client DLL that handles the presentation of the Dashboard is hard coded to alert the SQL database of changes in “nugget” windows.

Unfortunately, nothing can be done within the Presentation layer of the application to remedy this. Instead, we must prepare for such changes and scale accordingly. We will need to also discourage practice by the user community.

To determine the impact of such a load, we first need to determine the number of times we expect this setting to be used. In addition, we need to consider that the first window change on a dashboard creates twice as much server load as subsequent changes. Using random polls in various user communities, we estimate that each person will minimize or maximize two Web Parts per day. This number is probably high, we had to start somewhere!

Performance statistics show that 10 simultaneous changes to the window size pushed the test machine to nearly 100% processor utilization. Based upon these numbers, we can apply some math:

The longest an update string lasted was 1 second even under heavy load. Based upon these numbers and the tests taken with Microsoft Web Application Stress tools, the test server can handle 600 “nugget” changes per minute based upon a 1 second update. 60 Seconds * Simultaneous Users = 600 simultaneous changes per minute. This allows 36,000 nugget changes per hour and 288,000 per working day. Divide this number by the number allowed per user and you can determine that this server will support ~150,000 users based on the requirements of two changes per day.

This math was based upon the test server running a single Pentium II-500Mhz processor. Simultaneous users would scale up based upon the processor on the Portal Subscription Server:

PII-500Mhz P-Pro PIII-500Mhz PIII-500Mhz PIII-500Mhz
10 Simultaneous Updates 12 Simultaneous Updates 16 Simultaneous Updates 36 Simultaneous Updates 42 Simultaneous Updates

Again, based on the numbers and the expected updates per user, a dual or quad PIII should handle most network in regards to nugget changes.

The Scalability of Digital Dashboards

Steve Bryant Page 1 | Page 2 | Page 3 | Page 4 | Next

Disclaimer: Your use of the information contained in these pages is at your sole risk. All information on these pages is provided "as is", without any warranty, whether express or implied, of its accuracy, completeness, fitness for a particular purpose, title or non-infringement, and none of the third-party products or information mentioned in the work are authored, recommended, supported or guaranteed by Stephen Bryant or Pro Exchange. OutlookExchange.Com, Stephen Bryant and Pro Exchange shall not be liable for any damages you may sustain by using this information, whether direct, indirect, special, incidental or consequential, even if it has been advised of the possibility of such damages.

Copyright Stephen Bryant 2008