Microsoft включает функцию дефрагментации диска NTFS в продукты Windows Server начиная с Windows NT 4.0. Создается впечатление, будто каждая очередная версия Windows выпускается с новой функцией дефрагментации, и Windows Vista — не исключение. Реализованный в Vista дефрагментатор с графическим интерфейсом подвергся критике за «молчаливость». Предыдущие дефрагментаторы предлагали графическое представление используемого и свободного пространства диска, а в Vista он просит лишь положиться на эффективность этой функции и более ни о чем не беспокоиться. Однако, даже если инструмент работает безупречно, я предпочитаю знать, что делает моя система.

Поэтому я обратился к дефрагментатору с командной строкой Defrag (defrag.exe) и проверил, не обладает ли он более широкими возможностями по сравнению с инструментом с графическим интерфейсом. Как это часто бывает, так и оказалось.

Основные возможности функции Defrag

Одним из достоинств Defrag является отчет, который можно получить, если ввести ключ -a (основной отчет) или ключ -a -v (отчет с большей степенью детализации). Наберите следующую команду:

defrag <буква диска> -a -v

Основной отчет выдает размер самого большого блока свободного пространства и общую процентную долю фрагментированных файлов, после чего идет строка с рекомендацией, следует ли выполнять дефрагментацию диска. Ключ -v обеспечивает добавление около 20 элементов данных о системе, включая средний размер файлов, степень фрагментированности главной файловой таблицы (MFT) NTFS, общее число фрагментированных файлов и т. д.

Не следует забывать, что запуск функции Defrag в Vista нужно осуществлять из окна командной строки с повышенным уровнем полномочий, т. е. при открытии окна командной строки необходимо выбрать «Запуск от имени администратора». Дефрагментация предполагает чтение и запись файлов, а поскольку правом чтения всех файлов обладают только администраторы, функция Defrag, вероятно, потребует изменения привилегий. Синтаксис утилиты дефрагментации прост — достаточно указать после команды букву дефрагментируемого диска. Например:

defrag C:

Эта команда обеспечивает быструю простую дефрагментацию с консолидацией фрагментов меньше 64 Мбайт. Это ограничение обусловлено тем, что объединение крупных блоков данных дает не такое заметное повышение производительности, как консолидация более мелких фрагментов. Например, последовательное чтение файла, разбитого на десять фрагментов по 500 Мбайт, безусловно, будет идти медленнее, чем чтение одного блока объемом 5000 Мбайт, но не намного. А теперь представим, как будет происходить чтение того же файла, разбитого на 500 фрагментов по 10 Мбайт. В этом случае головка чтения и записи будет просто «плясать» по всему диску!

А что если требуется пойти дальше и консолидировать фрагменты независимо от ограничения в 64 Мбайт? В этом случае нужно просто добавить ключ -w :

defrag C: -w

Конечно, такая работа будет выполняться дольше, в некоторых случаях — намного. Когда я попробовал дефрагментировать диск С: размером 160 Гбайт с использованием ключа -w после эксплуатации системы Vista на протяжении девяти месяцев, эта процедура заняла четыре часа. Но если необходимо «навести лоск», ключ -w позволяет это сделать.

Работа в сложных условиях

Признаюсь, что я иногда игнорирую необходимость дефрагментации до тех пор, пока ухудшение производительности не станет заметным, и неудивительно, что это происходит тогда, когда диск почти заполнен. К сожалению, дефрагментатор с графическим интерфейсом отказывается работать, если на диске менее 15% свободного пространства. Однако для дефрагментатора с командной строкой предусмотрен ключ -f, принуждающий к выполнению дефрагментации даже при отсутствии такого количества свободного пространства на диске. Я рад, что подобная возможность существует, но предлагаю использовать этот ключ лишь в случае крайней необходимости. Было бы очень рискованно пытаться дефрагментировать диск, полный важной информации, только чтобы убедиться в том, что процесс дефрагментации весьма ненадежен при недостатке свободного пространства.

Наконец, функция Defrag имеет ключ -c, обеспечивающий дефрагментацию всех разделов на целевом компьютере. Получив всю эту информацию, я выключил заданный по умолчанию план дефрагментации и настроил собственный режим дефрагментации, предназначенный для работы в сложных условиях, путем задания расписания для команды

defrag -c -w

Испытайте функцию Defrag в системе Vista. В конце концов, дополнительное увеличение скорости никогда не помешает.

Марк Минаси - Редактор Windows IT Pro, MCSE и автор книги Mastering Windows Server 2003 (издательство Sybex). mark@minasi.com