Windows write back caching

Windows write back caching

Виды кэша на рейд контроллерах LSI и Intel

Всем привет, давно хотел написать для себя напоминалку, по поводу того какие виды кэша на рейд контроллерах LSI и Intel бывают, и какие настройки лучше всего выставлять для достижения максимальной производительности на ваших RAID контроллерах. Сразу хочу отметить, что если у вас есть запас времени, перед, тем как отдать сервер в продашен заказчику, то не поленитесь все же провести несколько тестов с разными настройками, и не забывайте, до их начала обновить все прошивки на оборудование и RAID контроллер.

Общие понятия по видам кэш

Существует три разновидности cache на RAID контроллерах:

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

Read policy (Политика чтения)

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

Политика No Read Ahead (Normal) : При данном режиме контроллер не будет считывать последовательно данные, данный режим предпочтительнее когда будут производиться рандомные (случайные) чтения. Также этот режим рекомендуется при измерении последовательного чтения с помощью I/O meter под Windows.

Политика Adaptive Read Policy : по сути политика адаптивного чтения при которой контроллер запускает политику упреждающего чтения только после того, как две последние операции запрашивали доступ к последовательно идущим блокам данных. Если далее идут блоки рандомно разбросанные по дисковой подсистеме контроллер возвращается в нормальный режим работы. Этот режим рекомендуется использовать, если нагрузка на RAID контроллере подразумевает смешанные и последовательные операции.

Write policy (Политика записи)

Политика W rite-Through : Включая данную политику контроллер начинает посылает сигнал о завершении записи только тогда, когда информация упадет на физические носители, т.е. 100 процентов будет уже на жестких дисках. Обеспечивает более высокую безопасность. Данный режим не использует кэш для ускорения записи, и будет медленнее других, однако позволяет так же достичь хороших показателей при RAID 0 и RAID 10.

Политика Write-Back : Включая данный режим политика кэширования RAID контроллера начинает посылать сигнал о завершении записи только тогда, когда информация попадает в кэш контроллера, но еще не записана на дисковый массив. Обеспечивает более высокую прозводительность чем при политике write-through. Приложение продолжает работать, не дожидаясь, чтобы данные были физически записаны на жесткие диски. Но есть одно большое, но если во время работы RAID контроллера в таком режиме у вас пропадет электричество, то с 99 процентной вероятностью вы потеряете данные, для предотвращения этого есть BBU батарейки или модули защиты данных, так же советую проверить что у вашего сервера есть UPS (источник бесперебойного питания) и дублирующее подключение питания от блока питания.

Политика Write-Back with BBU : Данный режим это все тот же Write-Back, но разница в том, что у нас есть батарейка BBU, которая предотвращает потерю данных при выключении электропитания.

Читайте также:  Календарь для windows с номерами недель

BBU или Battery Backup Unit (Модуль Резервной Батареи). BBU дает батарейную защиту питания для cache RAID контроллера. В случае сбоя питания, BBU поможет сохранить данные в кэше.

I/O Policy (Политика ввода/вывода)

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

Политика direct IO : чтение происходит с дисков. Прямой режим I/O рекомендуется в большинстве случаев. Большинство файловых систем и множество приложений имеют свой собственный кэш и не требуют кэширования данных на уровне контроллера RAID.

Политика Cached IO : При ее включении чтение происходит с дисков, но прочитанные данные одновременно кладутся в кэш. Запросы тех же данных в последствии берутся из кэша. Этот режим может потребоваться, если приложение или файловая система не кэширует запросы чтения

Disk cache policy : это политика кэша диска. Если ее включить то на дисках будет храниться дополнительный кэш, это будет влиять на скорость записи в худшую сторону, но будут быстрее считывание, так же при включенном режиме есть риск потери данных.

Настройка RAID контроллера для лучшей производительности

Любой инженер по системам хранения данных, хочет чтобы его инфраструктура работала как можно быстрее и использовала весь функционал заложенный в ней. Каждый вендор RAID контроллеров, имеет некий best prictice для своей продукции, давайте сегодня рассмотрим их на примере контроллеров Intel и LSI.

Оптимальные настройки для контроллеров Intel

Ниже представлена таблица с рекомендуемыми настройками для контроллеров Intel, для достижения максимальной производительности. О таких параметрах как Stripe size, Virtual Drive initialization, Consistency Check, Patrol Read мы поговорим ниже. Как видите лучшим режимом чтения является Adaptive Read Ahead, а режимом записи Write Back.

Оптимальные настройки для контроллеров LSI

Ниже представлена таблица с рекомендуемыми настройками для контроллеров LSI, для достижения максимальной производительности. Будут рассмотрены сводные таблицы для HDD и для SSd дисков.

Оптимальные настройки для HDD

Размер stripe 256 kb, включение disk Cache Policy включен, выбран I/O Policy Direct IO, нужно дать закончить lun инициализацию

MegaRAID Settings for Maximum HDD Performance

Оптимальные настройки для SSD

Размер stripe 256 kb, включение disk Cache Policy включен, выбран I/O Policy Direct IO, нужно дать закончить lun инициализацию, режимы записи для разных видов RAID разные.

MegaRAID Settings for Maximum SSD Performance

Оптимальные настройки для HP контроллеров

Факторы влияющие на производительность

Рассмотрим что такое Stripe size, Virtual Drive initialization, Consistency Check, Patrol Read.

Virtual Drive initialization — это зануление, блоков раздела, перед тестирование скорости советую дождаться полной инициализации. По времени занимает по разному все зависит от размеров массива.

Stripe size — Размер блока данных одной ячейки раздела, по сути карта как данные распределены по жестким дискам. Размер страйпа может иметь большое влияние на
Конфигурирование RAID для оптимальной производительности и других факторов эффективности. Как правило при последовательных данных увеличить скорость RAID контроллера можно с помощью размеров stripe 512 kb или 1 mb. При случайном виде доступа лучше 16 кб, все зависит от того какое По у вас будет крутиться на данном разделе. Но в большинстве случаев лучше оставить стандартный размер, предлагаемый производителем.

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

Читайте также:  Драйвера для hp psc 1410 под windows 10

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

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

Windows write back caching

This forum has migrated to Microsoft Q&A. Visit Microsoft Q&A to post new questions.

Asked by:

Question

In Windows Server 2012 and the upcoming Windows Server 2016 Storage Spaces, a virtual disk with tiered storage contains a write-back cache. There is a threshold that is configured in Storage Spaces which determines whether a particular write operation will go to the write-back cache or not. This threshold is very small and makes it so that the majority of writes do not land on the write-back cache.

As an example, let’s assume that the write-back cache can achieve 500MB/s while the slower tier operates at only 75MB/s. After creating the virtual disk and creating a freshly formatted volume, it is immediately noticeable that a copy operation of a 386MB file takes longer than one second to finish on the Storage Spaces Virtual Disk. One would hope that the file would be copied in under a second assuming that the write-back cache would consume the operation, but it doesn’t. Instead the storage tier detects that the write size exceeds the pre-defined threshold for writing to the write-back cache and forwards the write to the slowest tier which then takes around 5 seconds to complete. I find it disappointing that the write-back cache will not accelerate this file copy operation.

Background information can be found here:
https://technet.microsoft.com/en-us/library/dn387076(v=ws.11).aspx#bkmk_wbc

My goal is to accelerate more write operations, not just those very small in size. Here is a list of some other software providers that have accomplished this:

  • VirtuCache: http://virtunetsystems.com/virtucache-overview/
  • Intel CAS: https://software.intel.com/en-us/articles/intel-cache-acceleration-software-a-primer
  • PrimoCache: (write-deferred caching mode) https://www.romexsoftware.com/en-us/primo-cache/index.html

If Microsoft had a way to simply allow write-deferred caching, or to modify the threshold for what is to be written to the write-back cache Storage Spaces speeds could be improved by 20-fold (according to the benchmarks provided by these 3rd party vendors).

Two questions:

1) What is the default threshold (in Kilobytes) for Storage Spaces to choose to perform writes to the write-back cache?

2) What command can be issued in PowerShell to modify the threshold so that I can instruct Storage Spaces to perform larger writes to the write-back cache?

Windows Server Storage Spaces tier write-back cache, how to configure threshold that determines if write is performed on write-back cache?

The Storage Spaces feature included with Windows Server 2012 and the upcoming Windows Server 2016 consists of a virtual disk. In a tiered storage deployment a write-back cache is created (the default size is 1GB). There is a threshold that is configured in Storage Spaces which determines whether a particular write operation will go to the write-back cache or not. This threshold is very small and makes it so that the majority of writes do not land on the write-back cache.

As an example, let’s assume that the write-back cache can achieve 500MB/s while the slower tier operates at only 75MB/s. After creating the virtual disk and creating a freshly formatted volume, it is immediately noticeable that a copy operation of a 386MB file takes longer than one second to finish on the Storage Spaces Virtual Disk. One would hope that the file would be copied in under a second assuming that the write-back cache would consume the operation, but it doesn’t. Instead the storage tier detects that the write size exceeds the pre-defined threshold for writing to the write-back cache and forwards the write to the slowest tier which then takes around 5 seconds to complete. I find it disappointing that the write-back cache will not accelerate this file copy operation.

Читайте также:  Как удалить стим с линукса

Background information can be found here:

My goal is to accelerate more write operations, not just those very small in size. Here is a list of some other software providers that have accomplished this:

If Microsoft had a way to simply allow write-deferred caching, or to modify the threshold for what is to be written to the write-back cache Storage Spaces speeds could be improved by 20-fold (according to the benchmarks provided by these 3rd party vendors).

1) What is the default threshold (in Kilobytes) for Storage Spaces to choose to perform writes to the write-back cache?

2) What command can be issued in PowerShell to modify the threshold so that I can instruct Storage Spaces to perform larger writes to the write-back cache?

Enable or Disable Disk Write Caching in Windows 10

Write caching is a Windows feature that retains some disk in memory and does not immediately commit it to disk. When enabled, write caching makes disk operations faster by collecting the written data in a queue in RAM. It can be written back to the disk later from the queue lazily. This results in faster disk operation.

By default, disk write caching is enabled in Windows 10 for internal drives. For external drives, it is disabled, so they are optimized for quick removal. While disk write caching improves system performance, it can lead to data loss due to power outage or another hardware failure. Some data may be left in the RAM buffer and not get written to the disk.

Depending on the situation, you might want to enable or disable disk write caching for your drives. Here is how it can be done.

You need to sign in as Administrator before proceeding.

To enable or disable disk write caching in Windows 10, do the following.

  1. Press Win + X keys together on the keyboard and click Device Manager.

    Tip: You can customize the Win + X menu of Windows 10.
  2. In the device tree, expand the Disk drives group and find your drive.
  3. Double-click the device to open its properties.
  4. Switch to the Policies tab.
  5. Tick the Enable write caching on the device check box below Write-caching policy to enable it. Disabling this check box will disable write caching.
  6. For removable drives, you can choose between Quick removal and Better performance under Removal policy. The first option is enabled by default and disables write caching. The second option enables write caching and requires explicit safe removal of the device.

Winaero greatly relies on your support. You can help the site keep bringing you interesting and useful content and software by using these options:

Share this post

About Sergey Tkachenko

Sergey Tkachenko is a software developer from Russia who started Winaero back in 2011. On this blog, Sergey is writing about everything connected to Microsoft, Windows and popular software. Follow him on Telegram, Twitter, and YouTube.

1 thought on “ Enable or Disable Disk Write Caching in Windows 10 ”

what kind of data loss are you talking about in this case? can you be more explicit?

Оцените статью