Долгая "пауза" после копирования больших файлов в Windows 2008
У меня есть загадка в отношении пауз после копирования файлов на Windows Server 2008 (и других выпусках)
При копировании больших файлов, таких как VHS, на локально подключенные USB-диски, я часто вижу долгую паузу после того, как копирование завершено на 100%.
Как пример: robocopying VHD файлы. Число считанных / записанных байтов соответствует размеру файла VHD, а robocopy показывает 100%, но останавливается на несколько минут. Если я ничего не сделаю, он продолжится, но мне придется ждать довольно долго - примерно столько же времени, сколько потребовалось, чтобы добраться до 100%. Счетчики считанных / записанных байтов для робокопии не меняются.
Моей первой мыслью было, что AV должен был сканировать его, но я сейчас смотрю на машину, на которой не установлен AV, и это происходит, так что это невозможно. Никакие другие процессы не показывают число байтов чтения / записи как повышающихся.
Поведение такое же, если я использую команду копирования или xcopy.
Я видел это в других системах, но никогда не понимал, в чем причина. Кто-нибудь получил какие-либо предложения относительно того, что может происходить?
1 ответ
Вы испытываете процесс очистки локального буфера для фактического диска. Когда вы копируете файл на медленный носитель, ваша операционная система может сообщить вам, что операция выполнена до того, как она действительно будет завершена по соображениям производительности. На самом деле он сам отслеживает операцию (в памяти), если только программа, которую вы используете для отслеживания прогресса, не имеет своего рода вызов "ожидания фактической записи файла" в конце процесса. Это то, что вызывает ожидание.
Для обычных копий файлов Windows вы можете изменить это поведение, чтобы снизить производительность для безопасности, изменив настройки USB-накопителя, как описано здесь: http://www.pcworld.com/article/254868/safely_remove_usb_drives_just_by_unplugging_them.html
Если вы сделаете это, то "удалить безопасно" станет абсолютно необходимым, чтобы избежать повреждения файловой системы на внешнем диске. Это сместит (неизбежное) ожидание до момента фактического извлечения диска с дополнительным преимуществом: если вы позже внесете дополнительные изменения в скопированные файлы, прежде чем удалять его, вы сохраните кучу дорогих операций ввода-вывода, поскольку изменения выполняться непосредственно в локальном буфере.