Diskeeper 2010: нам бы фрагментацию взять да отменить

28 январь, 2010 - 15:07Игорь Дериев

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

Diskeeper 2010 нам бы фрагментацию взять да отменить

Без сомнения, главной новинкой Diskeeper 2010 стала технология IntelliWrite, задача которой состоит в предотвращении фрагментации. Хотя подробности ее реализации по понятным причинам не разглашаются, известно, что в основе IntelliWrite лежит специальный драйвер, подменяющий функции записи файловой системы и более интеллектуально распределяющий файлы по свободному пространству тома.

Идея на самом деле не нова. Действительно, нужно различать собственно спецификацию файловой системы и ее конкретную реализацию. Не вызывает сомнений, что выполнение одного и того же набора операций записи, скажем, над NTFS в Windows семейства NT и других ОС, оснащенных сторонними драйверами поддержки, даст отличающиеся результаты. При желании можно было бы провести (чисто академическое, вряд ли в этом можно усмотреть какую-то практическую ценность) исследование их устойчивости к фрагментации. Еще более показательный пример из недавнего прошлого – VFAT, реализация FAT для Windows 9x, обладавшая среди прочего и некоторым «интеллектом» по сравнению с классической примитивной реализацией BIOS/DOS.

Та же NTFS, изначально считавшаяся более интеллектуальной и эффективной, также несколько модернизируется с выпусками очередных релизов ОС, в том числе и в вопросах предотвращения фрагментации (к примеру, менялись принципы формирования и обслуживания резервной зоны MFT). Однако все упомянутые файловые системы создавались достаточно давно, когда оборудование было гораздо менее производительным (особенно на персональных компьютерах), а запросы пользователей – намного скромнее. Соответственно, чересчур «умный» драйвер грозил существенно снизить общее быстродействие. С тех пор утекло немало воды, аппаратно-программная база значительно развилась, но Microsoft относительно файловых систем избрала, видимо, путь наименьшего сопротивления, включив в состав ОС штатный дефрагментатор, а затем предложив и стандартный Defragmentation API. Последнее, кстати, практически уравняло сторонние разработки по части базовой функциональности.

Diskeeper 2010 нам бы фрагментацию взять да отменить
Сочетание IntelliWrite и автоматической дефрагментации позволяет поддерживать файловую систему в идеальном состоянии практически перманентно, независимо от характера загрузки компьютера

И вот спустя много лет Diskeeper (чей продукт и послужил основой для штатного дефрагментатора) задумала восполнить этот пробел с помощью IntelliWrite. Впрочем, данная технология также является компромиссным решением. В частности, она не обещает исключить фрагментацию на все 100% – только на 85% (а в реальности даже чуть меньше). Хотя здесь нельзя полностью сбрасывать со счета и маркетинговые причины, в конце концов главная продукция компании – именно дефрагментатор. Официальные же «издержки» выглядят более чем приемлемо: всего 1% перерасхода дискового пространства и необходимость наличия как минимум 2 ГБ свободного места на обслуживаемом томе.

Таким образом, достоинства технологии очевидны: кардинальное уменьшение уровня фрагментации не только нивелирует деградацию производительности дисковой подсистемы, но и снижает потребность в дефрагментации, а значит – в резервном копировании, репликации (особенно выполняемой автоматически на основе снимков тома), косвенно продлевает срок службы накопителей. И все же, какой ценой это дается?

Можно было бы предположить, что расплатой будет определенное снижение производительности операций записи. Однако на деле это не так. Данные, приводимые самими разработчиками, демонстрируют как раз некоторое повышение производительности при использовании IntelliWrite. К таким же выводам пришли и мы на основании собственного экспресс-тестирования. Копирование структуры папок, содержащих порядка 400 файлов различных размеров общим объемом около 2 ГБ, на раздел, заполненный примерно на две трети, с использованием IntelliWrite выполнялось на 2–3% быстрее, чем без нее. Правда, только при отключении для результирующего накопителя кэширования операций записи. Возвращение же этого параметра в исходное состояние в нашем случае (естественно, мы не претендуем на исчерпывающее исследование) практически нивелировало разницу. Но и это отлично, поскольку главные дивиденды совсем иные.

Также при тестировании с включенной IntelliWrite наблюдался несколько больший разброс результатов, что можно объяснить большей же интерференцией с фоновыми системными процессами. Это позволяет сделать предположения о механизмах, используемых IntelliWrite. Очень похоже, что драйвер «укрупняет» или откладывает по крайней мере некоторые операции записи, применяя механизмы еще одной технологии Diskeeper – Invisitasking. Это, в свою очередь, делает почти незаметной и дополнительную нагрузку на центральный процессор.

И все же побочные эффекты у IntelliWrite имеются. Заключаются они в достаточно редких и порой весьма тонких нюансах совместимости со сторонним ПО. Один пример приведен в блоге разработчиков и касается некорректных результатов проверки целостности БД. Другой, с которым мы сами столкнулись во время подготовки обзора, состоит в периодических прерываниях работы torrent-клиента. В обоих случаях никаких ошибок данных не возникало, и отключение IntelliWrite восстанавливало нормальное функционирование ПО. Причина проблем, вероятно, общая, и разработчики уже трудятся над соответствующей заплаткой.

Diskeeper 2010 нам бы фрагментацию взять да отменить
Административный компонент семейства Diskeeper также развивается, в частности, в версии 2010 он обзавелся наглядной приборной панелью

Как было сказано вначале, IntelliWrite не претендует на полное искоренение фрагментации, поэтому все пробелы в ее работе призваны устранять традиционные инструменты Diskeeper 2010, которые также получили определенное развитие. В частности, автоматический режим дефрагментации победил окончательно – ручной рекомендуется только в качестве разовой оперативной меры, и он даже не является оптимальным. Большинство изменений носит внешний характер и призвано отражать применение IntelliWrite, к примеру, повышенное внимание уделяется консолидации свободного пространства, пересмотрены принципы оценивания состояния томов и формирования рекомендаций. Естественно, новая версия уже сертифицирована для Windows 7, для Windows Server 2008 R2 аналогичный процесс на стадии завершения. Приятной мелочью окажется отложенный старт системной службы Diskeeper для максимально быстрой загрузки ОС. И конечно же, продолжается экстенсивное совершенствование базовой функциональности, в частности, дефрагментация еще двух метафайлов – $SECURE и $USNJRNL (который, кстати, может достигать изрядных размеров) – стала возможной в штатном режиме, т. е. без необходимости перезагрузки. Как и раньше, Diskeeper 2010 предлагается в нескольких редакциях, ограничения младших регулярно смягчаются, подробную информацию можно найти на сайте разработчиков.