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.
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.
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.