If you are using Sitecore 8.0 Update 3 upwards then a couple of new default processors were added to the Health Monitors to periodically dump the Cache Status and Rendering Statistics to files on disk. By default this process is run every 10 minutes, and they are run on the CD servers as well so you can use these files to check how your caches have been behaving.
From the Sitecore 8 Update-3 release notes:
Periodic dumping data from /sitecore/admin/stats.aspx and /sitecore/admin/cache.aspx pages to the file system has been implemented. New processors have been added to the pipeline. The location and format of the log file can be configured as part of the processor configuration. By default, dump files are stored in /diagnostics/health_monitor in the Data folder. (415409, 415411)
The specific processors are:
<healthMonitor>
<!-- Dumps the information that the /sitecore/admin/cache.aspx page contains -->
<processor type="Sitecore.Pipelines.HealthMonitor.HealthMonitor, Sitecore.Kernel" method="DumpAllCacheStatus">
<dumpFile>$(dataFolder)/diagnostics/health_monitor/CacheStatus.{date}.{time}.html</dumpFile>
</processor>
<!-- Dumps the information that the /sitecore/admin/stats.aspx page contains -->
<processor type="Sitecore.Pipelines.HealthMonitor.HealthMonitor, Sitecore.Kernel" method="DumpRenderingsStatistics">
<dumpFile>$(dataFolder)/diagnostics/health_monitor/RenderingsStatistics.{date}.{time}.html</dumpFile>
</processor>
</healthMonitor>
The processors simply read the caches and rendering statistics, create an HTML table of the values and then dump them in the folder location specified. The output is very similar to what you see when you visit /sitecore/admin/cache.aspx
or /sitecore/admin/stats.aspx
.
When tuning caches, particularly during performance or load testing you may want to record the statistics more frequently, which you can do by reducing the configuration setting to a more suitable value:
<!-- HEALTH MONITOR INTERVAL
Specifies the interval between running the healthMonitor pipeline.
Default value: 00:10:00 (10 minutes)
-->
<setting name="HealthMonitorInterval" value="00:10:00"/>
You can read more about this feature in this blog post which I previously wrote.