Someplace in your application, you are chewing up disk "USE" a lot for a single file thats being opened everywhere. GC takes a hit on disk IO, so if you have less GC threshing you have less of a hit on performance as the disk isnt busy creating and shrinking a file on app use. As for what I think is happening, you have a server that is over utilized as on windows IOPS is rarely an issue in coldfusion. My guess is first reduce the IOS on GC, then reduce the IOPs by looking at the network stack by timing out slow crappy connections. Next I would look at if you have SrvIO enabled, if its hypervisor, the drivers for the NIC, the application pool for IIS, DNS resolution, and finally your cache stack. As I bet like many sites you have junk "bot" connections who leave your application stack half open, then your application chews up resources, opening a file. the file in question is busy as hell, and you only have so much disk resources. So I would look at timing requests out that are not ultra fast, such as HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
TCPMaxDataRetransmissions=7 , the default value is 255, which is insane. I put this as low as 1 on SAN clusters for time-sensitive applications. The value of 7 is what I slap on for most general troubleshooting, and tweak it accordingly. As for your template, move as much of the code as you can to static html, then serve it with a simple caching engine. We have a script that is built upon application start that dumps the core theme ui values to CSS. The css file is then caught by several caching engines and when the Ui is updated, the name of the file for the referring page is updated with it.