Разъяснение политики кэширования записи, ее основных вариантов и применения к жестким дискам и твердотельным накопителям.

Вопрос или проблема

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

Вот как я понимаю всё вышесказанное, но исправьте меня, если я где-то ошибаюсь:

Кэш записи напрямую / Кэширование записи напрямую само по себе не является частью политики кэширования записи, и это когда данные записываются в кэш и на устройство хранения, так что если Windows потребуется эти данные снова, они извлекаются из кэша, а не из устройства хранения, что означает только улучшенную производительность чтения, так как нет необходимости ждать, пока устройство хранения снова прочитает нужные данные. Поскольку данные всё ещё записываются на устройство хранения, производительность записи не улучшается, и нет риска потери или повреждения данных в случае отключения питания или сбоя системы, в то время как только данные в кэше будут утеряны. По умолчанию эта опция, похоже, включена и рекомендуется для сменных устройств, если нет необходимости использовать функцию “Безопасное извлечение оборудования” со стороны пользователя.

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

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

У меня есть вопросы о значимости последних двух опций для современных SSD, чтобы получить наилучшую производительность и с меньшим износом SSD:

Я знаю, что традиционные жесткие диски имеют встроенный кэш (интересно, какой это тип кэша), но имеют ли SSD тоже кэш? Если предположить, что у них есть, быстрее ли этот кэш, чем их NAND флеш и системная RAM, и стоит ли рисковать, включая кэширование записи на обратный ход? Я где-то читал, что кэш устройства хранения в общем быстрее, чем RAM, но хочу быть уверенным. Дополнительно, я читал, что кэширование записи следует включать, поскольку текущие данные, которые должны быть записаны позже на NAND флеш, некоторое время хранятся в кэше, и если есть данные, которые многократно модифицируются перед окончательной записью, удержание этих данных и их периодическое освобождение уменьшает количество их записей на SSD, тем самым уменьшая его износ.

Что касается сброса буфера кэша записи, я слышал, что контроллеры SSD настолько быстры сами по себе, что включать эту опцию не требуется, потому что они управляют сбросом. Однако я снова не знаю, имеют ли SSD свои собственные встроенные кэши и быстрее ли они, чем их NAND флеш и системная RAM, потому что если так, то сохранять эту опцию включенной имело бы смысл.

Совсем недавно я опубликовал вопрос о проблеме с моим Intel 330 SSD 120GB, которая была основной причиной для более глубокого исследования, подозревая, что политика кэширования записи может быть виновником проблемы с зависанием SSD, предполагая, что освобождение данных является причиной зависаний. В настоящее время у меня включено кэширование записи и отключен сброс буфера кэша записи, потому что я считаю, что управление сбросом кэширования записи контроллером SSD и сброс буфера кэша записи Windows конфликтуют друг с другом:

введите изображение здесь

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

Это был такой замечательный вопрос 10 лет назад, и сегодня он ещё более актуален, так что я не уверен, почему я не могу увидеть никаких ответов.

  • Я новичок на https://superuser.com, так что, пожалуйста, посоветуйте мне любые ссылки, как влиться в такие темы / темы как эта.
    Моё мнение — просто добрый старый здравый смысл в том, что;
  1. СДЕЛАЙТЕ ЭТО! Включите опцию кэширования записи – ПРОСТО СДЕЛАЙТЕ ЭТО!
    При небольшом или НУЛЕВОМ риске для сохраненных данных можно рискнуть потерей кэша данных по любой причине, включив (поставив галочку) опцию кэширования записи с огромным бонусом в виде продления срока службы HHD или SSD, плюс, о да, очень-очень аккуратное улучшение производительности.
  2. ПОДОЖДИТЕ! на ОТКЛЮЧЕНИЕ сброса буфера кэша записи – СТОП
    ms столь плохо определяет, что такое “отдельный источник питания,” что невозможно определить, является ли вероятность / риск потери данных значительными.
  3. Можно ли предположить, что, если ПК является ноутбуком (по факту встроенным ИБП), процесс корректного завершения или ПК с фактическим ИБП, то дебаты отходят от ms предостережений, которые бесполезны, за исключением как элемента CYA ??
  4. Я должен поздравить ms с двусмысленностью этих предупреждений / инструкций, так как я никогда не видел столь мало реальной информации (без примеров!) о проблеме столь важной.
  5. Объяснение значения или “отключения питания” по сравнению с “отдельным источником питания” с парой простых примеров было бы очень полезно…
  6. Разграничение между BSOD или другим системным сбоем и просто загадочным “отключением питания” было бы весьма полезным.
  7. Кто / Где или Когда было бы безопасно или выгодно действительно реализовать “сброс буфера кэша записи”, чтобы мы, обычные пользователи ПК (не серверных типов), могли, наконец, двигаться дальше. Включено различие ПК против ноутбуков и внутренних по отношению к внешним HDD / SSD устройствам…
    Заранее спасибо за любые разъяснения, которые приблизят к сути вопроса, а не к тем же старым объяснениям.

Ответ или решение

Теория:

Политика кэширования записи — это важная функция хранения данных, которой часто не уделяется должного внимания. Она представляет собой подход, используемый для управления процессом записи данных на накопители, такие как жесткие диски (HDD) и твердотельные накопители (SSD). Основные компоненты этой политики включают write-back caching и write-cache buffer flushing, каждый из которых имеет свои особенности и риски.

Write-back caching позволяет оперативно записывать данные в кэш, чтобы затем выгружать их на постоянное хранилище, когда система находится в простое. Этот метод улучшает производительность записи, но может привести к потере данных в случае сбоя питания или системной аварии, так как данные могут оставаться в кэше и не попадать на накопитель вовремя. Write-cache buffer flushing, с другой стороны, предназначен для снижения указанных рисков, обеспечивая неизменную запись данных на накопитель перед отключением питания, повышая тем самым надежность системы.

Пример:

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

Включение write-cache buffer flushing может частично решить эту проблему. Эта функция уменьшает риск потери данных, обеспечивая их своевременную запись на накопитель при отключении системы. Однако, на практике она может несколько снизить производительность, так как требует постоянного контроля за состоянием энергоснабжения и состояния данных в кэше.

Применение:

Рассмотрим сценарий использования современных SSD. Такие накопители часто содержат встроенный кэш, который значительно быстрее NAND-флеш памяти, что делает write-back caching привлекательной опцией. Однако, при отсутствии источника бесперебойного питания (ИБП) существует реальный риск потери данных. Применение write-cache buffer flushing может быть менее актуально, так как современные контроллеры SSD обычно эффективно справляются с управлением кэшированием данных, самостоятельно обеспечивая защиту от таких рисков.

Рекомендуется включать write-back caching для повышения производительности, но при этом принимать меры предосторожности, например, использовать ИБП для обеспечения безопасного завершения всех операций в случае потери питания. Для ноутбуков, которые обладают встроенным запасом энергии, риски снижаются, но для настольных компьютеров и серверов наличие резервного источника питания станет более критичным.

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

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

Оцените материал
Добавить комментарий

Капча загружается...