Today’s author, Steve Tullis, a Program Manager on the Excel Services team, talks about the various load balancing schemes available for Excel Services.
I have received a number of questions in the past few weeks about the load balancer administration options available for the Excel Services custom load balancer. Hereâs the scoop: the settings account for the âOpenWorkbookâ method when first accessing Excel Services. Once you have an active session with a workbook, additional requests from that user will always be sent to the ECS on which the âOpenWorkbookâ request was handled.
So, why do we have three options â Workbook URL, Round Robin, and Local? The options are meant to provide the admin better control over the resource usage on his/her farm. An explanation of each option follows:
- Workbook URL: Arguably, this provides the most efficient use of your hardware. Requests are sent from the WFE to an ECS based on a hash of the URL. This ensures the same ECS will always handle requests for the same workbook â regardless of the user making the request. Which means a workbook will only ever be retrieved from SharePoint once â until it is pushed out of the cache, or the file changes in SharePoint.
- Round robin: Each OpenWorkbook request goes to the next ECS in the rotation. The result is that the same wb can be loaded from SharePoint N times, where N = the number of ECS machines in your farm. Keep in mind two things: (1) requests against an active session will always return to the same ECS, and (2) if the wb is cached on the ECS when an OpenWorkbook request arrives, it will be loaded from cache provided the file has not changed in SharePoint. The benefit with this option is that each concurrent request goes to a different server; thus, theoretically, queues on the server (CPU, I/O) will be shorter, thus requests can be handled more efficiently. The effectiveness of this is dictated by the composition of your workbooks (wbs with very long running calculations tend to invalidate this).
- Local: This setting ensures ECS processing happens on the same WFE machine which received the request, which requires that the ECS service must be running on every WFE. Again, the same wb can be loaded N times, where N = the number of ECS / WFE machines in the farm. The benefit here is, theoretically, performance. By running the ECS on the WFE, and reducing the # of server-to-server hops, end user performance should be faster. The cost is in retrieval from SharePoint & cache size due to the potential of the same wb being open on multiple WFEs.
As you can see, there are pros and cons to each option. But, with the information provided above, as well as a bit of knowledge and experimentation on your side, you should be able to correctly select the right load balancing option for your installation.