Вопрос или проблема
Краткое содержание: в диспетчере устройств для накопителей опция «Включить кэширование записи на устройстве» НЕ установлена. Сервер был перезагружен после изменения этих значений. Запись данных на диск потребляет до 60 ГБ оперативной памяти, пока данные медленно сбрасываются на диск. Я хочу отключить это навсегда.
Контекст:
В настоящее время я пытаюсь протестировать аппаратный RAID с различными размерами полос и размерами единиц распределения, чтобы понять, что лучше всего подходит для моей новой конфигурации, но у меня возникают проблемы с тестированием. У меня настроены 6 томов RAID 6 по 200 ГБ на контроллере с размерами полос от 32 КБ до 1 МБ. RAID-массив в настоящее время состоит из 9 дисков IronWolf Pro объемом 22 ТБ. Кэширование на RAID-контроллере отключено для всех томов (установлено на запись без задержек). Планировалось отформатировать каждый из этих томов с одинаковым размером единицы распределения, провести некоторые тесты, затем переформатировать с другим размером единицы распределения и записать скорости в таблицу. Я перехожу от 64 КБ к 1 МБ по размеру единицы распределения.
Проблема в том, что… когда я записываю на тома, Windows помещает данные в память, поэтому скорости передачи не точны (заявляет 1,7 Гб/с). Это можно увидеть, загрузив монитор ресурсов и посмотрев на размер “Изменено”. При записи большого файла этот показатель резко увеличивается. Используется буквально до 60 ГБ оперативной памяти. Затем, если вы посмотрите на вкладку диска, вы увидите, как процесс системы медленно записывает этот файл на диск с примерно 250 МБ/с, пока использование памяти уменьшается с той же скоростью.
Как только я определю наилучшие значения, кэширование записи на RAID-контроллере будет включено, и это будет мой кэш. Мне не нужно и не хочется 60 ГБ данных в оперативной памяти при перемещении данных.
Побочная заметка: я знаю, что существуют программы, такие как Crystal Disk Mark, которые можно использовать для тестирования производительности накопителей. Сложность для меня здесь в том, что у него есть собственная конфигурация размера блока, и я не уверен, какой размер блока там соответствует простому перемещению 50 ГБ файла на RAID в проводнике.
Ответ или решение
Понимание проблемы отключения кэширования записи в Windows
Теория
В Windows система кэширования записи используется для увеличения производительности независимых дисков и связанных с ними массивов. Это достигается за счет временного размещения данных в оперативной памяти (RAM) перед их окончательной записью на физический диск. Такое кэширование позволяет ускорить операцию ввода-вывода, поскольку запись в оперативную память осуществляется быстрее, чем на жесткий диск. Однако, если вы хотите получить точные данные по скорости записи на диске для анализа или тестирования, то кэширование может создать ложное впечатление о скорости работы системы.
Пример
В описанной вами ситуации, даже после отключения опции "Enable write caching on the device" через диспетчер устройств и перезагрузки сервера, проблема остается: Windows продолжает использовать RAM для временного хранения данных перед их записью на диск. Это приводит к эффекту, когда система показывает неправдоподобно высокую скорость передачи данных, в то время как на самом деле они только загружаются в оперативную память и медленно записываются на диск.
Решение
-
Подтвердите настройки системы: Убедитесь, что все настройки кэширования были корректно применены и сохранены. Иногда изменения могут не применяться сразу или неправильно сохраняться. Проверьте текущие настройки в диспетчере устройств и, возможно, в дополнительных установках RAID-контроллера.
-
Используйте дополнительные средства администрирования: Если Windows продолжает использовать кэширование, рассмотрите возможность использования альтернативных утилит для манипуляции с настройками диска или директным управлением через интерфейс RAID-контроллера, если он это поддерживает. Например, большинство контроллеров поддерживают свои собственные утилиты для настройки кеширования, которые могут работать независимо от Windows.
-
Настройки политик групп: Проверьте политики групп (Group Policy) на предмет наличия настроек, влияющих на управление энергопотреблением и кэшированием устройств хранения. Некоторые политики могут автоматически применять определенные параметры, несмотря на изменения в диспетчере устройств.
-
Тестирование скорости записи без кэширования: Если рассматриваемая утилита CrystalDiskMark вызывает путаницу из-за своих внутренних настроек, используйте такие программы, как Iometer или Diskspd, которые позволяют более точно задавать параметры тестирования, включая размер блока ввода-вывода.
-
Изменение размера файла страничного файла: Убедитесь, что операционная система использует оптимальные настройки для страничного файла, что может повлиять на управление памятью и, следовательно, на систему кэширования.
-
Обновление драйверов: Убедитесь, что у вас установлены последние версии драйверов для вашего RAID-контроллера и операционной системы. Ошибки в старых версиях драйвера могут вести к неожиданным результатам работы системы кэширования.
-
Системные оптимизации: Проверьте настройки оптимизации операционной системы, которые могут влиять на управление памятью и дисками, включая сторону системных служб и режимов энергосбережения.
Применение
Ваш подход к тестированию производительности различных комбинаций stripe size и allocation unit size на вашем RAID массиве вполне логичен. Однако для получения объективных данных критично отключить все уровни кэширования. Оперативное использование тонкой настройки контроллера и системы может в разы улучшить точность получаемых данных, что в итоге повлияет на выбор лучших параметров конфигурации вашей системы хранения. Обратите внимание на взаимодействие между контроллером и операционной системой: иногда именно глубинные параметры контроллеров-фирменные утилиты предлагают более глубинный подход к проблеме, позволяя обойти системные настройки операционной системы.