Как часто Windows очищает кэш записи?

1213
Joseph L.

Предполагая, что передача файла завершена, сколько времени займет, пока Windows не очистит кэш записи?

Например, я запускаю резервную копию на жестком диске (с включенным кэшированием записи). После завершения резервного копирования я выключаю диск. Кэш записи сбрасывается сразу после завершения дискового ввода-вывода или период ожидания?

1

2 ответа на вопрос

2
Jamie Hanrahan

Windows сбрасывает свой внутренний файловый кеш на восьмисекундное вращающееся окно. То есть каждую секунду одна восьмая грязных страниц в кэше ставится в очередь для записи. Фактическое письмо может занять больше времени. Кроме того, другие факторы могут привести к задержке записи.

Собственный встроенный кэш накопителя, а также кеш Windows гарантированно будут сброшены при переходе через диалоговое окно «Безопасное отключение». Он не скажет вам «безопасно удалить», пока запись фактически не завершится в Windows, и накопитель не сообщит, что команда для сброса его внутренних буферов на носитель завершена.

Можете ли вы предоставить ссылки для вашего ответа? Насколько я понимаю, (цитируя Windows Internals) * "... раз в секунду функция отложенной записи менеджера кэша выполняется в системном рабочем потоке и ставит в очередь ** одну восьмую ** грязных страниц в системном кэше ... «* Также существует множество сценариев, в которых алгоритм сброса адаптируется к рабочей нагрузке, поэтому не всегда можно точно знать, когда сбрасываются * все * записи. misha256 7 лет назад 0
Если _Windows Internals_ говорит, что это одна восьмая, то это одна восьмая. Я редактировал выше - спасибо. Рекомендация пройти последовательность «безопасно отключить» все еще верна; что _дается_ говорит вам, что _все_ записи сбрасываются. Jamie Hanrahan 7 лет назад 0
nb: В прошлом было обнаружено, что некоторые накопители лгут об очистке встроенного кэша. Я буду благотворительным и скажу, что это была «неполная реализация» функции. Я не слышал о случае по крайней мере десять лет, поэтому я предполагаю, что это не проблема ни в одном из дисков, которые мы, вероятно, будем использовать. Jamie Hanrahan 7 лет назад 0
1
Erik Bye

Microsoft рекомендует не отключать очистку буфера записи-кэша, если подключенное устройство не имеет собственного источника питания, чтобы предотвратить потерю в случае сбоя питания. Это прямо из вкладки Свойства диска / Политики (см. Изображение ниже).

очистка буфера в кеше записи

Буферы должны очищаться только при подтвержденной записи, но есть некоторые проблемы взаимодействия с кешем диска. Но что касается сбоя питания, речь идет о паре секунд. То есть вы не потеряете данные, если отключение питания не произойдет в течение двух секунд после записи.

Если вы теряете мощность во время вызова FlushFileBuffers, вы можете получить только частичную запись, так как полная запись не выполняется до полной очистки буфера. Существует хранилище индексов, которое указывает, где на самом деле находятся данные. Этот индексный магазин написан первым.