Я попытался использовать прозрачное кэширование в Windows для доступа к большим (100 МБ) файлам с сетевых дисков. Первые испытания очень многообещающие. Это может сократить время чтения всех протестированных файлов с 3,5 до 0,3 с.
Проблема в том, что кеш очень быстро становится недействительным. Из того, что я тестировал, через ~ 10 секунд.
Можно ли контролировать, как долго сохраняется кеш? Как система узнает, что кеш необходимо переоценить? Возможно это может быть вызвано настройкой SMB.
Есть несколько вещей, связанных с Прозрачное кеширование, среди них функции BranchCache, Offline Files и Background Sync, начиная с Windows 7.
Если ты говоришь о Прозрачное кеширование только тогда этот параметр регулируется полосой пропускания и задержкой (режим медленного соединения) и может зависеть от доступного пространства для размера кэша. Его можно настроить с помощью групповой политики на сервере Windows, обслуживающем клиента.
Фоновая синхронизация, услуга, необходимая для TC с другой стороны, есть еще несколько параметров, включая тайм-аут и интервал синхронизации для файлов.
Помните, что Прозрачное кеширование всегда запрашивает у сервера изменения в файлах и разрешает доступ к ним только до тех пор, пока сервер показывает их доступность. Вы можете прочитать об этом в официальная статья TechNet.
Можно ли контролировать, как долго сохраняется кеш?
Нет, такого варианта нет.
Как система узнает, что кеш необходимо переоценить?
Это во многом зависит от ресурсов системы кэширования и задержки (деленной на время доступа). Обычно вы можете увидеть много небольших файловых кешей примерно за 10-20 минут и меньше больших файлов (1-3 минуты).
Возможно, это может быть вызвано настройкой SMB.
Дополнительных (поддерживаемых) настроек нет. Или я их не нашел. Если вы это сделаете, оставьте мне сообщение :)