HKLM\System\CurrentControlSet\Services\InetInfo\Parameters\MaxCachedFileSize (REG_DWORD) | Suggested: 16777216 Decimal
This registry key is used by the file cache to determine the maximum size of a file that can be cached. The file size is in bytes. The default value of this key is 256 KB. If the file size is greater than 256 KB, the file cannot be cached.
HKLM\System\CurrentControlSet\Services\InetInfo\Parameters\MaxCachedFileSizeInMB (REG_DWORD) | Suggested: do not specify unless you need to cache files larger than 4GB.
The value of the MaxCachedFileSize registry key is the maximum file cache size in bytes. This registry key value cannot be set to more than 4 GB. You can use MaxCachedFileSizeInMB to set the maximum file size to cache more than 4 GB. If both MaxCachedFileSizeInMB andMaxCachedFileSize are defined, the effective maximum cached file size is the sum of both values. The default value of MaxCachedFileSize is 256 KB. If you define only the value of MaxCachedFileSize, the effective maximum size increases by 256 KB.
HKLM\System\CurrentControlSet\Services\InetInfo\Parameters\MemCacheSize (REG_DWORD)
This registry key specifies the maximum amount of memory that a file cache in a worker process uses. The default value for this registry key is 0. The default value specifies that the cache size is determined dynamically. This registry key tries to estimate the available physical memory and the total virtual memory. If you set the value for this registry key to 0, the length of time in seconds that objects are held in cached memory is adjusted to the value in the ObjectCacheTTL registry key.
HKLM\System\CurrentControlSet\Services\InetInfo\Parameters\ObjectCacheTTL (REG_DWORD)
The user mode file cache and the kernel mode output cache use this registry key. Both the caches run a scavenger operation for every ObjectCacheTTL seconds.
HKLM\System\CurrentControlSet\Services\InetInfo\Parameters\UriMaxUriBytes (REG_DWORD) | Suggested: 16777216 Decimal
The maximum size of an entry in the kernel-mode cache. Responses or fragments larger than this are not cached. If you have enough memory, consider increasing the limit. If memory is limited and large entries are crowding out smaller ones, it might be helpful to lower the limit.
HKLM\System\CurrentControlSet\Services\InetInfo\Parameters\UriScavengerPeriod (REG_DWORD) | Suggested: 600 Decimal
The HTTP.sys cache is periodically scanned by a scavenger, and entries that are not accessed between scavenger scans are removed. Setting the scavenger period to a high value reduces the number of scavenger scans. However, the cache memory usage might increase because older, less frequently accessed entries can remain in the cache. Setting the period too low causes more frequent scavenger scans, and it can result in too many flushes and cache churn.
Other registry entries to take note of:
HKLM\System\CurrentControlSet\Services\InetInfo\Parameters\UriEnableCache (REG_DWORD)
A non-zero value enables the kernel-mode response and fragment caching. For most workloads, the cache should remain enabled. Consider disabling the cache if you expect a very low response and fragment caching.
HKLM\System\CurrentControlSet\Services\InetInfo\Parameters\UriMaxCacheMegabyteCount (REG_DWORD)
A non-zero value that specifies the maximum memory that is available to the kernel-mode cache. The default value, 0, enables the system to automatically adjust how much memory is available to the cache.
Note Specifying the size sets only the maximum, and the system might not let the cache grow to the maximum set size.