Performance Tuning Considerations on IIS

Many characteristics of the network environment in which Unwired Platform and Relay Servers are installed can reduce performance. Understanding what these are and which are most likely to cause problems will give you some guidance in how to approach perfomance tuning.

Traffic Factors Affecting Performance

All of the following traffic factors can affect Relay Server cluster performance:
  • Persistency
  • Concurrency
  • Timeout
  • HTTP request/response size
  • Back-end farm size
  • Back-end server compute time
  • Relationship between transfer rates of client-Relay Server network and Outbound Enabler-Relay Server network

Iterative Tuning

The key objective in performance tuning is to identify the bottlenecks, or limiting points, in the overall system so you can increase capacity where more capacity is needed.

In practice, you need to iteratively test with a targeted set of loads for your business and factor in traffic patterns at different times of day, especially at peak levels. Identify the bottlenecks in the overall system and then tune to relieve one or more identified bottlenecks. This process keeps shifting the bottleneck from one compoment to another in the overall system, while gaining overall performance on each tuning iteration.

Where to Start

If the network surrounding the Relay Servers is not saturated, your first iteration will identify the Relay Servers as the bottleneck. You want to see if the existing Relay Servers can be tuned to perform better before considering adding Relay Servers to the farm. Relay Servers can be limited in speed by the resources in the table below.

Potential Speed Limiting Resource Likelihood
Network I/O between Relay Servers and Outbound Enablers Likely
Network I/O between Relay Servers and clients Likely
Application pool process (IIS) and thread availablilty Unlikely
CPU (including overhead on context switching and interrupts) Very unlikely

Relay Servers can be limited in data volume by the resources in the table below.

Potential Data Volume Limiting Resource Likelihood
Application pool process (IIS) and thread availablilty Likely
Pre-allocated shared memory of a fixed size Likely under heavy load
Virtual memory Unlikely
Non-paged pool memory consumed by HTTPS system driver and kernel Unlikely

You can monitor all these resources via Windows performance monitor except for shared memory consumption; you can view this in a shared memory report in the Relay Server log whenever you archive the log. Tuning these elements, except shared memory size, falls under general IIS tuning practices. Separating rs_client.dll and rs_server.dll into different application pools enable resource partitioning and makes fine tuning possible.