Назад | Перейти на главную страницу

Почему IIS 7.5 очень часто очищает файловый кеш?

Мы запускаем сервер Win 2008 R2 с IIS 7.5 для обслуживания файлов изображений.

Он используется только для статического содержимого, а кэширование файлов настроено для кеширования файлов на 10 минут.

Однако IIS часто полностью очищает кеш (видно с помощью Perfmon)

Это не переработка пула приложений, это не потому, что истек TTL, поэтому теперь я в растерянности :-(

Я приложил снимок экрана с графиком perfmon, на котором вы можете ясно увидеть проблему.

Я могу где-нибудь увидеть, ПОЧЕМУ он делает эти приливы?

(Примечание: я знаю, что могу обнаружить это, подключив к процессу отладчик, но это не вариант, потому что это производственный сервер, и он не может справиться с замедлением, которое может вызвать отладчик)

Наконец-то нашел ответ на проблему.

У нас это было в нашем web.config для сайта (несмотря на то, что на сайте не запущен какой-либо управляемый код)

<caching enableKernelCache="true">

После изменения этого на ложный IIS прекратил выполнять эти полные сбросы. Некоторые файлы по-прежнему очищаются регулярно, но это уже не полная очистка (в кеше остается около 50 тыс. Файлов)

Наши попадание в кеш файла% увеличился с 5% до 33%, так что это, безусловно, очень помогает.

Не уверен, почему кеширование ядра вызывает такое поведение, но я могу жить с небольшими накладными расходами на кеширование в пользовательском режиме.

Подумал, что добавлю это как ответ, чтобы помочь другим с аналогичными проблемами.

Как часто осуществляется доступ к уникальным URL-адресам изображений? Если по умолчанию URL-адреса не были получены в течение 120 секунд, они сбрасываются.

Видеть UriScavengerПериод ключ реестра в http://support.microsoft.com/kb/820129.

Определяет частоту очистки кеша. Любой ответ или фрагмент, к которому не было доступа в течение количества секунд, равного UriScavengerPeriod, сбрасывается.