Копирование файла с диска на диск (Disk-to-Disk File Copy)
В этом тесте всеми тремя системами были показаны довольно стабильные и хорошие результаты. Разве что разница между оценками времени копирования одного (Single File) и множества файлов (Multi File) в RTM системе составила 12 секунд в пользу первого. Но стабильность SP1 свела эту разницу на нет.
Копирование файла с диска в USB (Vista-to-USB File Copy)
Как видно из диаграммы, существует огромная разница между временем записи и считывания файлов через USB, что, скорее всего, связано с самим USB-накопителем. В остальном же, прослеживается определенная тенденция к улучшению производительности системы SP1 по сравнению с RTM и RTM Patched. Vista с SP1 почти минуту выиграла у RTM при записи единичного файла. Кроме того, в обоих тестах считывания система SP1 незначительно опережает RTM и RTM Patched, однако при записи множества файлов она значительно отстает от них. Последнее было сообщено в Microsoft, на что представители компании назвали это неожиданным результатом.
Копирование файла с Vista на XP (Vista-to-XP File Copy)
Это именно та область, в которой мы ожидали увидеть наибольшие улучшения. Проблема сетевого взаимодействия Vista с XP/2003 уже давно тяготела над операционной системой и являлась одной из основных причин ее критики. Полученные результаты, показанные системой SP1, нас не разочаровали.
Между RTM и RTM Patched системами не было почти никаких различий, обе показывали просто ужасные результаты. Запись единичного файла с Vista на XP в этих системах занимала почти на 3.5 минуты больше времени, чем аналогичная запись в USB. Запись же множества файлов была лишь на минуту быстрее.
Результаты теста считывания также ужасали. Аналогичное считывание с USB было примерно на 6-8 минут быстрее! Интересным было то, что считывание множества файлов занимает на 2-3 минуты меньше аналогичного считывания единичного файла.
Однако достигнутые улучшения времени в системе SP1 были просто изумительными. Время записи единичного файла по сравнению с RTM системами снизилось с 9 до менее 2-х минут, что является 77% улучшением. А время считывания единичного файла упало с 9:33 до почти минуты - 86% улучшение!
Результаты тестов записи/считывания множества файлов также впечатляли, улучшение составило 64% и 83% соответственно. Кроме того, как видно из диаграммы, времена записи/считывания в системах RTM и RTM Patched значительно разняться, тогда как в системе SP1 они почти одинаковы.
Копирование файла с Vista на Vista (Vista-to-Vista File Copy)
Этот тест дал огромное число аномальных результатов, за объяснением которых мы обратились в Microsoft.
Общее время записи/считывания было не плохим. Однако результаты, показанные системой RTM Patched, были почему-то на 2-5 секунд хуже аналогичных результатов системы RTM. И все вроде бы было улучшено в SP1, которая почти везде выигрывала 6-14 секунд у RTM, но тест считывания единичного файла показал обратное. В нем система SP1 уступила RTM 21 секунду.
Microsoft объяснила такие результаты переработкой алгоритмов системы копирования. Компания также дала объяснение плохих результатов копирования файлов с Vista на XP в системах RTM.
Объяснение Microsoft низкой производительности копирования Vista-XP
Microsoft попыталась исправить некоторые недостатки алгоритма копирования файлов, примененного в Windows XP, и выпустила в Windows Vista уже обновленный алгоритм, который также не отличался высокой производительностью. Более того, он оказался даже хуже прежнего. В настоящее время с SP1 компания выпускает еще более обновленный алгоритм, который, по сути, является откатом назад. Но, давайте обсудим все по порядку…
Одна из самых больших проблем XP-алгоритма заключалась в неприспособленности кэширования к требуемой скорости записи, что особенно сильно проявлялось при копировании больших объемов данных. Кроме того, копирование файлов с удаленных систем кэширование производилось дважды – первый раз при считывании файла с удаленной системы и второй раз при его записи в место назначения. В конечном итоге это вызывало чрезмерную загрузку системной памяти и процессора, так как менеджер кэширования работал в дополнительное время.
В настоящее время в операционной системе Vista применяется “исправленный” алгоритм, использующий кэшированный дисковый ввод/вывод для файлов с размером 256Кб и менее, и некэшированный ввод/вывод для более крупных файлов. Для файлов с размером 2Мб и менее применяются две операции ввода/вывода, тогда как для файлов с размером больше 8Мб применяются вплоть до восьми операций ввода/вывода.
Размер ввода/вывода также изменяется в зависимости от размера копируемого файла:
- размер ввода/вывода равен реальному размеру файла для файлов менее 1Мб;
- размер ввода/вывода равен 1Мб для файлов с размером от 1Мб до 2Мб;
- размер ввода/вывода равен 2Мб для файлов, размер которых больше 2Мб.
Поэтому, для копирования файла с размером в 16Мб Vista сначала будет использовать 8 некэшируемых операций ввода/вывода с размером в 2Мб, а затем начнет другой цикл.
Хотя этот алгоритм копирования файлов и обладает рядом улучшений по сравнению с его предыдущей версией, у него есть ряд недостатков, основной из которых проявляется при сетевом копировании файлов. Процесс случайно вызывает обратные неупорядоченные операции ввода/вывода. Это приводит к чрезмерной поисковой дисковой активности в системе назначения и по прошествии длительного времени к созданию пробок записи.
Другой его недостаток – и возможно самый важный – в плохой производительности системы при копировании больших файлов и/или больших групп файлов. Точное объяснение причины этого дано техническим коллегой компании Microsoft Марком Руссиновичем (Mark Russinivich). В своем блоге он написал “…предыдущий алгоритм использовал кэшированный файловый ввода/вывод, что позволяло Explorer’у заканчивать запись файлов назначения в память и прерывать диалог копирования еще до того, как поток кэширования менеджера КЭШа в действительности направит данные на диск. Реализация же некэширующего алгоритма в Vista вынудила Explorer ожидать окончания каждой операции записи перед запросом дальнейшей и, в конце концов, ожидать пока все данные не будут записаны непосредственно на диск перед отображением окончания копирования. Кроме того, Explorer в Vista ожидает 12 секунд перед выполнением оценки длительности копирования, алгоритм которой чувствителен к колебаниям скорости копирования. Все эти причины увеличивают время копирования и недовольство пользователей”.
Поэтому, внедренный в изначальной версии Vista некэширующий алгоритм, по сути лишь ухудшил производительность копирования. Что в основном и объясняет наши данные тестирования, как и серьезное падение системной скорости, которое ощущалось во время каждого копирования файла. Однако алгоритм, внедренный в SP1, исправил ситуацию. Иначе откуда бы мы взяли улучшение на 86%?
Выводы
Надо сказать, что разработки Microsoft не стоят на месте, и официальный релиз SP1 будет явным тому подтверждением. Возвращенный в нем обратно, но модифицированный алгоритм кэшируемого ввода/вывода и полученные нами улучшенные результаты очень хорошо это доказывают. Модификация алгоритма заключается в том, что теперь всегда будет использоваться кэшированный ввод/вывод, исключая только случаи удаленного копирования файлов. В эти моменты, во время процесса копирования алгоритм выдает команду локального некэширования удаленного файла, что предотвращает ранее отмеченную проблему двойной буферизации. Алгоритм также буферизует в памяти пришедшие вводы/выводы от источника, где они перед записью на диск собираются в правильном порядке. Это предотвращает ранее известную проблему засорения жесткого диска, высокого использования процессора и снижения системной производительности.
Кроме того, установка SP1 до 32Кб уменьшает размер ввода/вывода протокола передачи файлов SMB 1.0, примененного в Windows XP/2003. По сути, ценой уменьшения пропускной способности достигается чрезвычайно эффективная и требующая меньших ресурсов передача файлов между Vista SP1 и не-SP1 системами. Таким образом, риторический вопрос “устанавливать или не устанавливать SP1” для нас уже не актуален. Мы отвечаем однозначно: устанавливать.
Комментарии (0)