Низкая производительность диска при включенном кэшировании записи. Установка параметра кэширования записей жесткого диска

Использование кэша - известное средство для ускорения доступа к часто используемым данным, а основная цель применения кэширования заключается в повышении производительности работы системы в целом.

Кэширование в операционной системе Windows используется и при выполнении операций чтения и записи файлов. Кэширование файлов при чтении обеспечивает более быстрый доступ к ним в случае повторного обращения. При первоначальном обращении к файлу система считывает его с диска в оперативную память, а благодаря кэшированию при повторном чтении файла система мгновенно извлекает файл из оперативной памяти, вместо того чтобы считывать его с более медленного жесткого диска. Кэширование файлов при записи позволяет приложениям не тратить времени на ожидание завершения операции сохранения данных и практически мгновенно приступать к выполнению следующих операций. В результате возрастает скорость выполнения файловых операций: запуск программ, копирование файлов, открытие файлов, и т.д., но все это может иметь место только в случае оптимального управления дисковым кэшем. Дисковым кэшем (Disk Cache) называют часть установленной в компьютере оперативной памяти, используемой как промежуточный буфер при чтении данных и записи их на внешние устройства хранения (жесткий диск, дискеты, CD-ROM и пр.). Оптимальные размеры кэша диска зависят от аппаратной конфигурации, версии системы, используемых приложений, и в итоге они для каждого компьютера индивидуальны. Чем больше дисковый кэш, тем быстрее считываются файлы с жесткого диска и тем меньше остается свободной оперативной памяти для работы приложений - задача в том, чтобы найти удачный компромисс и определить такой размер кэша, чтобы файловые операции выполнялись быстро и оперативной памяти хватало для работы приложений.

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

Особенности кэширования в Windows

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

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

К сожалению, непосредственно в Windows отсутствуют удобные встроенные механизмы для эффективного управления кэшированием. Стандартные средства настройки, предусмотренные для этой цели разработчиками, позволяют лишь включать/отключать дисковое кэширование записи. Для этого следует выбрать из контекстного меню папки Мой компьютер команду Свойства, перейти на вкладку Оборудование, щелкнуть на кнопке Диспетчер устройств и открыть раздел Дисковые устройства. Затем нужно вызвать контекстное меню нужного устройства, для которого следует изменить настройки дискового кэширования, выбрать команду Свойства и включить или выключить флажок Разрешить кэширование записи на диск (рис. 1).

Рис. 1. Включение режима кэширования записи

Все иные изменения в настройках кэширования файлов могут быть произведены только путем корректирования соответствующих параметров системного реестра или правкой файла System.ini. Но подобные операции требуют аккуратности, осторожности и профессионализма. Кроме того, они недостаточно эффективны, так как этим способом можно лишь жестко задать значения максимального и минимального объемов кэша, а они для каждого компьютера свои (хотя и существуют определенные рекомендации, которых можно придерживаться) и подбирать их придется вручную, путем многочисленных экспериментов. Более того, ограничение размера кэша далеко не всегда оказывается целесообразным - гораздо эффективнее оставить его динамическим, но изменить принцип управления процессом кэширования.

Утилиты для управления кэшированием

Чтобы более эффективно организовать управление кэшированием, лучше воспользоваться специализированной утилитой от сторонних производителей - это будет намного удобнее, быстрее, надежнее и может помочь оптимально настроить параметры кэширования и добиться более высокой производительности и стабильности работы системы. Правда, выбор ПО для управления кэшированием в Windows весьма ограничен. Те или иные возможности организации кэширования имеются в некоторых приложениях, отвечающих за настройку и оптимизацию операционной системы: Windows Accelerator, Reg Organizer, RAM Saver Pro и др. Однако существует и ряд специализированных утилит с более широкими возможностями в плане управления кэшированием - наиболее удачные из них мы и рассмотрим.

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

O&O CleverCache 6.0 Professional

Разработчик: O&O Software GmbH

Размер дистрибутива: 6,79 Мбайт

Цена: 29,95 долл.

Работа под управлением: Windows NT 4.0/2000/XP/2003

CleverCache - самое удачное решение для эффективного управления процессом кэширования в среде Windows. Приложение позволяет предотвратить нерациональное использование оперативной памяти, снижает нагрузку на дисковую и процессорные подсистемы компьютера и позволяет в два раза увеличить быстродействие системы без модернизации компьютера и без риска ухудшения стабильности ее работы. Это приложение самостоятельно эффективно управляет распределением памяти между дисковым кэшем и приложениями с помощью технологии AutoSense и к тому же не требует предварительной настройки со стороны пользователя, что позволяет рекомендовать CleverCache в качестве надежного инструмента даже новичкам. В то же время профессионалы при необходимости могут корректировать настройки программы через панель управления, так как программа встраивается в операционную систему в качестве системной службы. Например, вручную можно определить максимальное и минимальное значения файлового кэша, объем всегда свободной оперативной памяти (рис. 2), временной интервал между помещением файла в кэш-память и его записью на диск и т.п. Экспериментируя с настройками, стоит обратить внимание на подробную документацию, где приведены рекомендуемые значения параметров в зависимости от аппаратуры и нюансов работы. Пользовательские настройки могут сохраняться в профилях для дальнейшего использования.

Рис. 2. Настройка параметров функции Mem-O-Free, отвечающей за контроль свободной оперативной памяти

При каждой загрузке операционной системы CleverCache загружается в системный трей, выполняет проверку аппаратной конфигурации компьютера и автоматически подбирает лучшие параметры настройки для оптимального использования ресурсов оперативной памяти. Результаты настройки отображаются в окне встроенного модуля Cache Monitor (рис. 3). Программа постоянно контролирует объем свободной оперативной памяти, и если он оказывается меньше некоторой величины, то неиспользуемые участки памяти сбрасываются в файл подкачки и освобождается недостающий объем оперативной памяти. В итоге в системе в любой момент времени оказывается доступным некоторый фиксированный объем свободной оперативной памяти, необходимой приложениям. Это приводит к уменьшению времени отклика и наиболее заметно при одновременном запуске нескольких приложений и частых переключениях между ними.

Рис. 3. Статистика CleverCache в окне Cache Monitor

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

CacheBoost Professional Edition 4

Разработчик: Systweak

Размер дистрибутива: 898 Кбайт

Способ распространения: shareware

Цена: 29,95 долл.

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

CacheBoost обеспечивает интеллектуальное управление дисковым кэшем, самостоятельно подбирая оптимальные для данной конфигурации параметры кэширования и непрерывно контролируя объем свободной оперативной памяти и размер кэша. При настройке на автоматический контроль программа самостоятельно меняет размер дискового кэша исходя из объема доступной в системе оперативной памяти. Это означает, что при открытии большого числа приложений CacheBoost сразу же уменьшает размер кэша, чтобы увеличить объем свободной оперативной памяти, доступной для приложений. В случае работы с небольшим числом приложений программа увеличивает размер кэша, чтобы ускорить выполнение файловых операций. При необходимости можно настроить параметры кэширования вручную (рис. 4), указав максимальный размер кэша, определив возможный баланс между размером кэша и доступной памятью и установив временной интервал между помещением файла в кэш-память и его записью на диск.

Рис 4. Вариант настройки параметров кэширования вручную

CacheBoost контролирует наличие свободной оперативной памяти, распределение ее между приложениями и активность использования дискового кэша, наглядно отображая статистику на графике (рис. 5). Программа дефрагментирует системную память для быстрого доступа к ней (рис. 6), восстанавливает утечку памяти в плохо оптимизированных приложениях и периодически освобождает часть оперативной памяти, помещая неиспользуемые данные в swap-файл. Это освобождает свободную оперативную память, необходимую для приложений, и тем самым повышает устойчивость работы системы, позволяет активным приложениям быстрее реагировать на действия пользователя. По желанию пользователя возможно принудительное очищение памяти, занятой дисковым кэшем. Реализованная в программе технология Data Safe обеспечивает полную безопасность кэшируемых данных.

Рис 5. График использования оперативной памяти и дискового кэша

Рис 6. Автоматическая оптимизация оперативной памяти

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

CachemanXP 1.12

Разработчик: Outer Technologies

Размер дистрибутива: 1,25 Мбайт

Способ распространения: shareware

Цена: 25 долл.

Работа под управлением: Windows NT/2000/XP

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

Утилита работает в фоновом режиме, а иконка программы отображается в системном трее. Программа непрерывно контролирует загрузку процессора, объем свободной оперативной памяти и то, как ее расходуют различные запущенные процессы. Процессы, потребляющие свыше 10% загрузки центрального процессора, отображаются в информационном окне синим цветом, а процессы, которые потребляют свыше 80% загрузки процессора, показаны красным. При необходимости приоритет выполнения любого из соответствующих процессов можно изменить (рис. 7). CachemanXP позволяет вручную настраивать параметры дискового кэша (рис. 8), а также задавать размеры кэша DNS, кэша иконок и кэша Internet Explorer, хотя может сделать это и автоматически - в режиме автооптимизации. Кроме того, программа может периодически или по команде пользователя освобождать часть оперативной памяти, перемещая из нее часть не используемых в данный момент приложений из оперативной памяти на жесткий диск в файл подкачки. Дополнительно программа позволяет проводить тонкую настройку некоторых системных параметров.

Принцип кэширования, используемый для жесткого диска, во многом похож на принцип кэширования динамической памяти, хотя способы доступа к диску и памяти сильно отличаются. Время доступа к памяти - величина постоянная, а время доступа к диску зависит от времени подвода головки к определенной дорожке, успокоения и ожидания требуемого сектора. Доступ к диску происходит секторами. Для MS DOS размер сектора равен 512 байт, поэтому наименьший размер кэш-памяти также должен составлять 512 байт.

Методы кэширования, используемые для оперативной памяти – Write Trough (сквозной записи) и Write Back (обратной записи) - применяются и для кэширования информации, хранимой на жестких дисках. Так как винчестер является блочно-ориентированным устройством ввода-вывода, то данные передаются блоками определенной длины, используя при этом специальные буферы для файлов (команда BUFFERS). Таким образом, центральный процессор работает с диском не на прямую, а через буферы.

Кэш-память диска заполняется не только требуемым сектором, но и секторами, непосредственно следующими за ним, так как обычно взаимосвязанные данные хранятся в соседних секторах. Этот метод также называется Read Ahead (чтение вперед) - метод упреждающего чтения. Это определяет необходимость оптимизации жесткого диска для повышения эффективности кэширования.

При полном заполнении кэша происходит замена информации, к которой производится минимум обращений (алгоритм LRU). Если в кэше хранить таблицу FAT и дерево каталогов, то поиск файлов происходит эффективно даже для дисков большой емкости.

Архитектура кэш-памяти современных винчестеров использует полностью ассоциативное отображение (Fully Associative Memory), а это значит, что кэш может быть использован для работы с любым количеством страниц. Такая организация кэша возможна вследствие того, что оперативная память и микропроцессор работают существенно быстрее, чем жесткий диск.

Кэширование жесткого диска может быть организовано как программными, так и аппаратными средствами. На плате контроллера обычно находятся и собственная кэш-память, и собственный процессор, причем размер кэш-памяти может колебаться от десятков килобайт до 16 мегабайт.

В большинстве распространенных моделей винчестеров аппаратный кэш не позволяет радикально увеличить быстродействие винчестера. Буферы ввода-вывода, формируемые DOS, также неспособны существенно повысить скорость обмена. Поэтому широкое применение нашли резидентные программы - администраторы кэша, которые создают кэш в расширенной памяти (Extended), доступной в соответствии со спецификацией XMS, и организуют управление им. Поддерживается кэширование как чтения с дисков, так и записи на них. В результате образуется трехступенчатый конвейер, по которому передаются данные с диска в оперативную память и обратно. Он включает внутренний буфер накопителя, кэш и буферы ввода-вывода, формируемые DOS. Функции блокирования и разблокирования физических записей (секторов) выполняет сама DOS, минимальный размер данных, с которыми работает кэш является сектор.

Среди имеющихся средств кэширования наиболее часто используются администраторы SmartDriveизMS-DOSиNortonCacheиз комплектаNortonUtilities.

При кэшировании дисков в команде BUFFERS число буферов не рекомендуется указывать более 10, так как большее значение никакого выигрыша не даст и, кроме того, не позволит сформировать буферы ввода-вывода в высокой памяти, когда в нее наряду с другими модулями DOS загружается сервер сжатия дискового компрессора.

При выборе между созданием виртуального диска и организацией кэш-памяти предпочтение следует отдавать кэшированию.

Slow Disk Performance with Write Caching Enabled (Низкая производительность диска при включенном кэше записи), а так же о некоторых связанных с этим вопросах. В какой-то степени она касается всех.

Краткое содержание статьи Microsoft Knowledge Base Article 332023 .

В операционных системах Windows 2000 Sp3, Windows XP производительность некоторых операций записи на жёсткий диск (IDE, SCSI) может быть ниже ожидаемой при включенном кэше записи. Причиной является особенность работы кэша записи.

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

В некоторых случаях важно произвести запись немедленно, минуя кэш. Это предотвращает потерю или повреждение данных в случае сбоев. Например, если при дефрагментации произойдет внезапная потеря питания, то данные, которые находятся в кэше записи и не успевают записаться на диск, будут потеряны. Ситуация усугубляется тем, что при отложенной записи в кэше может находиться достаточно много информации, как содержимого файлов, так и таблиц размещения файлов. Для повышения надёжности выполнения таких критичных операций, диску посылаются специальные команды, которые позволяют записывать данные немедленно, не используя кэш. Для IDE дисков применяется команда "Flush buffers" (на самом деле эта команда вызывает запись на диск содержимого кэша, но в данном случае это не важно).

Такая особенность работы драйверов диска была разработана изначально и позволяет повысить надёжность системы за счет некоторого снижения производительности критичных операций. Для пользователей Windows 2000, которым требуется максимальная скорость, Microsoft предлагает установить обновлённые драйвера диска (включены в Sp4) и специальную утилиту Dskcache.exe. Обновлённые драйвера добавляют опцию "Power protected write cache", а при помощи утилиты можно управлять настройкой кэша.

При включении опции "Power protected cache", команда Flush buffers диску не посылается. Этим исключается уменьшение производительности, но в случае потери питания при выполнении критичных операций все находящиеся в кэше диска данные теряются и возможно повреждение данных на диске. Ниже приведены возможные настройки и их эффект.

Несмотря на заявления Microsoft, Power protected cache можно включить в Windows XP Sp1 и ранее. Необходимые для этого драйвера входят в Sp2 и прекрасно работают. В Windows 2000 наоборот не удалось заставить работать Power protected cache. Несмотря на выводимое сообщение, что Power protected cache включен, результаты тестов не менялись.

Где можно ожидать падения производительности при включенном кэшировании записи?

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

Проведённое мини исследование показало, что большинство программ работают без падения производительности. В том числе MS Word, копирование, распаковка архивов. Уменьшение скорости происходит в Business Disk WinMark 99, 1С:Предприятие. Можно ожидать падение производительности в некоторых профессиональных пакетах при операциях сохранения.

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

Какова величина падения производительности?

В случае многократной записи небольшими порциями, разница между записью используя кэш и минуя кэш может достигать 10 и более раз. В частности, в 1С:Предприятии при обработке справочников без использования транзакций разница приближается к двум порядкам.

Было произведено небольшое тестирование. В нем участвовали:

  • WinBench 99 2.0 www.etestinglabs.com. Несмотря на свой возраст, этот пакет до сих пор является непременным атрибутом тестирования дисков. В отличие от большинства других программ, WinBench 99 формирует на диске отдельную папку, создаёт в ней набор файлов и эмулирует реальную работу приложений. Единственным его недостатком является сильная зависимость от системы. Влияние оказывает файловая система и драйвера. С другой стороны, если система остаётся постоянной, то результаты отражают реальную производительность дисков.
  • 1С:Предприятие. Версия 7.7. Для тестирования использовалась реальная база 223 МБ (DBF формат). Замерялась скорость восстановления последовательности документов за 3 месяца. Эта операция является достаточно распространённой и, в некоторых случаях, выполняется часто.

Тестирование производилось при использовании:

  • Windows 98. Эта операционная система не "знает" о существовании кэша жёсткого диска. После появления дисков с 8 МБ кэшем, была даже выпущена заплатка, которая при выключении питания делала паузу для того, чтобы диск успел записать все данные из кэша. Соответственно, никаких команд Flush buffers диску не посылается. Результаты приводятся справочно.
  • Windows XP Power Protected Cache - Disabled. Кэш записи включен, команда Flush buffers диску не посылается.
  • Windows XP Power Protected Cache - Enabled. Кэш записи включен, команда Flush buffers диску посылается.
  • Windows XP nForce IDE SW driver 3.44. Установить последний драйвер 3.66 не удалось. Система просто не загружалась. Поэтому использовалась предыдущая версия драйвера.

Тестирование производилось на системе: CPU Athlon 2000 МГц, MB nForce2, RAM 512 МБ, Video R9000 64МБ 128бит, HDD WD400JB (40 ГБ, 8 МБ кэш).

Все тесты выполнялись на первом разделе C: - 8 ГБ, FAT32. Диск был частично заполнен данными, перед тестами была выполнена дефрагментация. Тесты WinBench 99 BUS выполнялись по 10 раз, а WinBench 99 HE по 5 раз. Результат усреднялся. Не было выявлено никакой разницы в загрузке процессора при дисковых операциях (где выше результаты, там, соответственно, и загрузка процессора была немного больше).

По полученным результатам можно сделать выводы:

  • Power protected cache дает повышение производительности далеко не всегда, но там где дает, повышение значительно.
  • Драйвер nForce IDE SW ведет себя аналогично Windows XP Power Protected Cache - Enabled. Разница незначительна, хотя и есть.
  • В Windows 98 результаты WinBench 99 значительно хуже, чем в Windows XP. Но 1С:Предприятие работает быстрее в Windows 98, чем в Windows XP Power Protected Cache - Disabled.

Немного о IDE драйверах.

Кроме стандартных драйверов IDE контроллера, поставляемых Microsoft, существуют драйвера производителей "железа" - Intel Application Accelerator, VIA IDE Miniport Driver, nForce IDE SW Driver, драйвера от SIS. К этой же категории можно отнести и Maxtor MaxBoost. Протестировать все возможные драйверы не было возможности, но, основываясь на личных наблюдениях и по сообщениям в форумах о результатах WinBench 99, можно утверждать, что в каждом из этих драйверов команда Flush buffers при выполнении критичных операций записи не посылается диску. Этим самым при выполнении дефрагментации, записи в реестр, данные на диске подвергаются дополнительной опасности быть поврежденными при сбоях питания. Однако производители умалчивают об этом, заявляя о повышении производительности за счет логики IDE контроллера или использовании преимуществ их "железа".

Особо стоит отметить Intel Application Accelerator. Intel приводит достаточно много информации о достоинствах своего драйвера. Кроме того, имеются диаграммы:

Несмотря на то, что Intel Application Accelerator не тестировался, можно сделать выводы, что основной прирост производительности в WinBench 99 происходит из-за того, что команда Flush buffers диску не посылается. Обратите внимание, результаты WinBench 99 High-End Disk WinMark не приводятся, т. к. прироста производительности там нет или он очень мал. Уменьшение скорости загрузки Windows, скорее всего, обусловлено более быстрой инициализацией, но никак не повышением производительности дисковой подсистемы. Похожая ситуация наблюдается с драйверами nForce IDE SW. После смены их на стандартные, во время загрузки происходит несколько заметных пауз.

Судя по документации, Intel Application Accelerator использует в качестве дополнительного кэша оперативную память, т. е. работает аналогично Maxtor MaxBoost. При использовании диска с 2 МБ кэшем, он все-таки должен дать некоторый прирост производительности.

Пару слов можно сказать про личный опыт использования VIA IDE Miniport Driver. Во-первых, этот драйвер так же не посылает команду Flush buffers диску. Во-вторых, в нём были отмечены критические ошибки. Предыдущая версия некорректно себя вела на диске с 8 Мб кэша при завершении работы (питание отключалось до записи данных на диск из кэша), текущая версия 3.20b регулярно вызывала зависания системы, правда это случалось раз в 3 дня. При одном из зависаний произошла потеря информации. После перемещения файла с флэш накопителя на жёсткий диск, система зависла. При этом работало все, что не требовало обращения к диску (можно было переключаться между окнами). После перезагрузки выяснилось, что файл с флэш накопителя был удалён при перемещении, а на диск он не записался.

Итоги.

В операционных системах Windows 2000 и Windows XP стандартные драйвера диска для некоторых критичных операций записи на диск посылают команду Flush buffers, чтобы диск не использовал кэш. Этим достигается надёжность, за счет некоторого снижения производительности. При помощи утилиты Dskcache.exe и последних драйверов диска, включенных в Windows 2000 Sp4, Windows XP Sp2, можно повысить производительность дисковой подсистемы. При этом в случае сбоев (потери питания), данные диска подвергаются дополнительному риску быть поврежденными. Включение и отключение соответствующей опции можно производить "налету" без перезагрузки.

Драйвера Intel Application Accelerator, VIA IDE Miniport Driver, nForce IDE SW Driver, драйвера от SIS, Maxtor MaxBoost не посылают команду Flush buffers диску при выполнении критичных операций. Этим повышается производительность, но снижается надёжность. Например, если при выполнении дефрагментации будет отключено питание, то очень вероятно повреждение данных на диске. Некоторые производители "железа" используют особенность работы стандартных драйверов Microsoft, чтобы продемонстрировать несуществующее преимущество собственной продукции.

Результаты теста WinBench 99 Business Disk WinMark сильно зависят от того, посылается ли команда Flush buffers диску или нет. Во многих обзорах, в том числе и на уважаемых русскоязычных сайтах, не принимают это во внимание. Результаты оказываются сильно искажены. В частности, в сравнениях ATA (драйвер по умолчанию) с SATA (драйвер производителя), результаты WinBench 99 для ATA оказываются сильно заниженными. На основании этих искаженных результатов делаются выводы о значительном превосходстве в производительности SATA над ATA.