eG Monitoring
 

Measures reported by SSRSCacheTest

A report server can cache a copy of a processed report and return that copy when a user opens the report.

Cached reports can be stored in the disk or in CPU memory (in-memory cache). When in-memory cache is used, the report server does not query SQL Server for cached content.

Caching reduces direct report server accesses and related processing overheads. Caching can also shorten the time required to retrieve a report if the report is large or accessed frequently.

Poor cache usage therefore, often translates into poor report server performance. This is why, administrators should track cache usage, quickly detect sub- optimal usage of the cache, and investigate the reasons for the same. This can be achieved using the SSRSCacheTest test.

This test monitors cache usage and reports the count of cache hits and misses, thus revealing whether more reports were serviced by the cache or by the report server itself. This way, the test sheds light on ineffective cache usage. The test also monitors the usage of in-memory cache and reports irregularities (if any). These timely revelations prompt administrators to quickly investigate and determine the reasons for poor cache usage - for instance, you can figure out if frequent cache flushes is the reason for cache misses. By rapidly fixing the bottlenecks to effective cache usage, administrators can improve the speed and efficiency with which report requests are serviced.

Outputs of the test : One set of results for the report server being monitored.

The measures made by this test are as follows:

Measurement Description Measurement Unit Interpretation
Cache_hits Indicates the number of report requests that were serviced by the cache during the last measurement period. Number Ideally, the value of this measure should be high.
Cache_hit_rate Indicates the rate at which report requests were serviced by the cache. Hits/Sec  
Cache_misses Indicates the number of report requests that were not serviced by the cache. Number Ideally, the value of this measure should be 0 or very low. A high value for this measure indicates that many report requests have been serviced by directly accessing the report server.

This can happen if the reports requested are not available in the cache. If a majority of report requests have been fulfilled by directly retrieving the requested reports from the report server, it can delay request processing and degrade the overall performance of the server.
Cache_miss_rate Indicates the rate of requests that were not serviced by the cache. Misses/Sec  
Cache_flushes Indicates the number of times the data in the cache was flushed to the disk. Number When the amount of unwritten data in the cache reaches a certain level, the report server writes cached data to a drive. This write process is called flushing.

A high value for this measure implies that the cache is flushed frequently. Frequent flushing can reduce the number of reports in cache, which in turn can increase cache misses. To avoid this, you may want to limit cache flushes.
Cache_flush_rate Indicates the rate of cache flushes. Flushes/Sec
Mem_cache_hit Indicates the number cached reports returned from the in-memory cache during the last measure period. Number A high value is desired for this measure.
Mem_cach_hitrate Indicates the rate of cached reports returned from the in-memory cache. Hits/Sec  
Mem_cache_misses Indicates the number of cache misses against the in-memory cache during the last measure period. Number A low value is desired for this measure.
Mem_cache_mis_rate Indicates the rate of cache misses against the in-memory cache. Misses/Sec