By using Visio Services, users can view Microsoft Visio Web drawings in SharePoint Server 2010. When Web drawings are connected to external data sources, Visio Services makes it possible for users to update the appearance of Web drawings, based on underlying data changes. For more information about Visio Services, see Visio Services overview (SharePoint Server 2010).

This article discusses the effect of topology on the overall service latency (how long it takes to render a drawing) and throughput (how many drawings can be processed in a second) when a typical mix of drawings is rendered. The test outlined in this article measures performance under recommended user load and maximum user load on an instance of Visio Services that is configured with default settings.

With this information, you can better scale deployments based on latency and throughput requirements. You can either scale up by increasing the capacity of the existing servers or scale out by adding additional servers to the topology. It is important to be aware that the specific capacity and performance figures that are presented in this article differ from the figures in real-world environments. The figures presented are intended to provide a starting point for the design of an appropriately scaled environment. After you complete the initial system design, test the configuration to determine whether the system supports the factors in your environment.

Visio Services capacity and performance depends on, among other factors, the makeup of the Web drawings that are hosted on the service. File-related factors that affect performance are listed in the following table.

Factor

Qualitative effect on performance

Drawing disk size

Larger files sizes increase latency on the SharePoint network.

Drawing complexity

Drawings that contain many complex shapes increase rendering latency and resource usage on the application servers.

Drawing data-connectivity

Visio Web drawings can be either static or data-connected.

For static drawings, Visio Services loads drawings and renders directly to the browser.

For data-connected drawings, Visio Services performs the additional step of polling the underlying data sources for fresh data and updating the drawing before rendering it to the browser. This additional step increases latency and resource usage on application servers.

To simulate the effect of these factors, files were categorized as shown in the following table.

Small

Medium

Large

Number of shapes

20

50

100

Typical file size

300 KB

600 KB

900 KB

If drawings were data-connected, these additional categories were used.

Small

Medium

Large

Number of refreshable elements

10

120

180

Number of rows imported

10

40

80

Percent of data change

50%

50%

50%

The different file categories were then assembled into a test dataset by using the distribution shown in the following table.

Types of file

Percentage

Small static

49

Small data-connected

21

Medium static

14

Medium data-connected

6

Large static

7

Large data-connected

3

Note

Data-connected files were connected to a Microsoft SQL Server data source by using Secure Store Service Authentication. This article does not cover the performance effect of drawings that are connected to other external data sources.

The following test procedure was used for each performance scenario. Note that this test assumes a farm that is dedicated to Visio Services (no other tests running on SharePoint Server) and that only one user is using the service.

Test ID

Test name

Test description

#1

Rendering a Typical Mix of Visio Web Drawings

From the browser, a simulated user requests Visio Services to render a drawing.

Visio Services renders the drawing by using the Portable Network Graphics (PNG) output format and returns it to the user via the browser. If the drawing is data-connected, the drawing is refreshed before it is rendered.

Visio Services caches the drawing to reduce latency the next time that it is requested.

Steps 1, 2, and 3 are repeated with files randomly selected from the Dataset without any think time between requests.

To provide trend information, several farm configurations were used for testing with increasing computing capacity. Farm configurations ranged from two to five Web servers plus a single database server that was running SQL Server 2008. Testing was performed by using one client computer that generated all requests. All Web server computers and the database servers were 64-bit.

The following table lists the specific hardware that was used for testing.

After a calibration run that is used to determine the green zone and red zone user loads, the Rendering a Typical Mix of Visio Web Drawings test was run repeatedly. Only the topology was changed, to show its progressive effect on farm performance. The requests per second (RPS) number that is reported in this article is the average RPS of a constant user load test.

Note

All the tests reported on in this article were conducted without think time, which is a natural delay between consecutive operations. In a real-world environment, each operation is followed by a delay as the user performs the next step in the task. By contrast, in this testing, each operation was immediately followed by the next operation, which resulted in a continual load on the farm. This load introduced database contention and other factors that can adversely affect performance.

The following table summarizes the effect of adding front-end Web servers and application servers to the throughput of Visio Services.

Recommended (green zone)
requests per second

Maximum (red zone)
requests per second

1x1x1

97.5

126

2x1x1

172.5

192

2x2x1

195

218

3x2x1

242

266

The following graph shows that the addition of front-end Web servers and application servers increases both green zone and red zone throughput linearly. By slope comparison, the graph of these values also shows that the addition of a front-end Web server has a larger positive effect on the throughput than the addition of application servers. This indicates that front-end Web servers can be a bottleneck for Visio Services deployments.

This section provides general performance and capacity recommendations. Use these recommendations to determine which hardware, topology, and configuration settings best meet your particular capacity and performance needs.

To increase the capacity and performance of one of the starting-point topologies, you have two options. You can either scale up by increasing the capacity of the existing servers or scale out by adding additional servers to the topology.

As a rule, Visio Services is especially sensitive to scaling out. When planning to scale out, use the following general rules:

When you, use the configurations described earlier, favor increasing WFE servers to increasing application servers. If your computers have performance specifications that are comparable to the specifications in this article, a ratio of three WFE servers to one application server is recommended.

Remember that scaling out enables both an increase in throughput and an increase in user load that Visio Services can serve. Use the following graph to gauge the expected throughput on the topology at a particular user load. Notice that throughput tapers off at a certain user load, after which requests are served with increase latency.

One way to control the performance characteristics of Visio Services is to change the values of its performance-related service settings. The following table discusses the qualitative effect on farm performance of varying these settings.

Setting location

Parameter

Description

Qualitative effect on performance

Central Administration

Maximum Web Drawing Size

The maximum size in MB of a Web drawing that can be rendered.

A larger size limit can lead to reduced throughput and increased latency.

A smaller limit can prevent more complex Web drawings from being rendered but has the opposite effect on performance.

Minimum Cache Age

The minimum number of minutes that a Web drawing is cached in memory.

This value is per user per drawing. The interval begins when a user views a Web drawing. That user cannot refresh that Web drawing until the interval expires. The interval begins for other users when they first view the Web drawing.

Smaller values allow for more frequent data refresh operations for users but increase CPU and memory usage on application servers, which reduces throughput and increases latency.

A larger value increases the refresh window but has the opposite effect on performance metrics.

Maximum Cache Age

The number of minutes after which cached Web drawings are purged.

Larger values decrease file I/O and CPU usage on application servers but increase memory usage on the server. Large values reduce latency for drawings that are rendered often.

A smaller value has the opposite effect on performance.

Maximum Recalc Duration

The number of seconds before the data refresh operations time out. This applies only to data-connected Web drawings.

Longer timeouts allow for more complex data-connected Web drawings to be recalculated but use more processing power, reduce throughput, and increase latency.

A shorter time-out decreases the complexity of the drawings that can be rendered but has the opposite effect on performance.

Web Part

Force Raster Rendering

Forces the Visio Web Access Web Part to render the drawing as a PNG even though Microsoft Silverlight might be installed.

Choosing to render all drawings by using a raster format reduces drawing visual fidelity but increases throughput slightly.

The following sections discuss methods for improving farm performance by optimizing service settings and working around common system bottlenecks.

During performance testing, the following bottleneck was revealed. A bottleneck is a condition in which the capacity of a particular constituent of a farm is reached. This causes a plateau or decrease in farm throughput.

Bottleneck

Cause

Resolution

WFE CPU utilization

Because of caching on the application server layer, the throughput of the Visio Services application servers is larger than the front-end Web servers. This causes the WFE layer to be the bottleneck of the system.

Add more front-end Web servers to help reduce the effect of the WFE bottleneck on the overall throughput of Visio Services.

To help you determine when you have to scale up or scale out a Visio Services deployment, you can use performance counters to monitor its health. In addition to the performance counters that are included with Windows Server and that measure overall server health, you can use the following list of performance counters to gain a deeper understanding of the specific performance behaviors of Visio Services.

The following table lists performance counters that monitor key Visio Services application server metrics. All these counters are in the Visio Server: Visio Graphics Service performance counter category.

Logical category

Counter

Measurement

Aggregate counters

Requests Received per Second

Count of requests received per second.

Request Processing Time

Average processing time of a rendering request in milliseconds.

Drawing rendering pipeline detail

File Retrieval and Parsing Time

Average time, in milliseconds, to retrieve a drawing from the content database and to parse it.

Server Data Refresh Time

Average time, in milliseconds, to retrieve all external data for a data-connected drawing.

Server Data Binding Time

Average time, in milliseconds, to update a data-connected drawing.

Text Data Binding Time

Average time, in milliseconds, to update text in a data-connected drawing.

Server Rasterization Time

Average processing, in milliseconds, to create a PNG representation of a drawing.