Microsoft Office Tutorials and References
In Depth Information
Optimizing for Performance
You might need to increase the Maximum Request Duration setting and the various IIS timeouts
to ensure that requests are not aborted in the middle of their execution.
Use a high performance computing (HPC) solution, such as Microsoft Windows Compute Cluster
Server (CCS) to manage and balance your application.
Excel Services does not support multi-threaded recalculation (MTR), which is a new Excel 2007
feature. MTR allows a complex workbook calculation to be split into multiple threads for parallel
execution. On Excel Services, the calculation is executed serially on one thread. In some cases,
you can achieve similar results by splitting your workbook into several smaller workbooks, and
using your client application to call the individual workbooks and combine the results. You can
also offload some of the calculation to UDFs that can be designed to run on multiple threads or
even multiple machines.
I/ The ECS uses the local disk to load workbooks from the disk cache. Loading workbooks is usually
considered an expensive operation. One way to minimize the amount of workbooks loaded is to have enough
memory so that the workbook is kept in the memory cache after its first load.
In addition, you can use the Maximum Workbook Size administrator setting to set a limit on the file size.
This setting can have a different value for each trusted location, thus allowing the administrator to limit
the amount of I/O some workbook authors are allowed to consume on the server. You can also ask the
authors of the workbooks to design for smaller file sizes.
The ECS uses the local disk to cache chart images, calculated ranges, and saved workbooks. For example,
when a chart image is generated on the ECS, it is saved in the cache. The next request for the same chart
will return it from the disk cache rather than recalculating it. The assumption is that this operation is more
effective than regenerating the chart.
The local disk is also used for logging, and the administrator can configure how verbose the logging is
(see Chapter 7 for details). Logging can be very useful to investigate issues, but at high verbosity levels, it
will cause a lot of I/O and might have a significant performance impact. Be sure to reduce the verbosity
level according to your needs.
Given all the ways the disk is used, you should ensure that your disk is efficient. For optimal performance,
you should use a local disk (as opposed to a remote share) and ensure that the disk is not fragmented.
Charting is expensive in terms of performance. It affects the network, CPU, and I/O in the following ways:
Chart images could be large. They are sent over the network from the ECS to the WFE, and from
there to the browser.
Chart image generation can be CPU-intensive. More importantly, it uses GDI, which holds a global
process-level lock and allows only one chart to be generated at any time by an ECS process.
To reduce the number of charts that are generated, charts are cached on the local disk for future
use. This increases the I/O consumption.